PHP에서 Android 중국어 문자 왜곡에 대한 해결 방법: 1. 해당 PHP 파일을 엽니다. 2. "json_encode" 이전에 "urlencode()"를 사용하여 모든 배열의 모든 내용을 처리합니다. 3. "json_encode()"를 사용하여 변환합니다. 4. "urldecode()"를 사용하여 인코딩된 중국어를 다시 변환합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.
Android에서 PHP 중국어 왜곡 문자를 제공하는 경우 어떻게 해야 하나요?
1. Android 자체는 mysql 데이터베이스에 직접 액세스할 수 없습니다. mysql 데이터베이스 작업을 완료하려면 PHP 웹 페이지를 사용해야 합니다. PHP와 Android 간의 데이터 교환에는 JSON 형식을 사용해야 합니다.
2. json이란
21세기 초 Douglas Crockford는 서버 간에 데이터를 교환할 수 있는 간단한 데이터 교환 형식을 찾고 있었습니다. 당시 일반적인 데이터 교환 언어는 XML이었지만 Douglas Crockford는 XML을 생성하고 구문 분석하는 것이 너무 번거롭다고 느껴 단순화된 형식인 Json을 제안했습니다.
Json의 사양은 매우 간단하며 한 페이지에 몇 백 단어로 명확하게 설명할 수 있습니다. Douglas Crockford는 이 사양은 모든 규정이 규정되어 있으므로 업그레이드할 필요가 없다고 주장했습니다.
1) 병렬 데이터는 쉼표(", ")로 구분됩니다.
2) 매핑은 콜론(":")으로 표현됩니다.
3) 병렬 데이터의 집합(배열)은 대괄호("[]")로 표시됩니다.
4) 매핑된 컬렉션(객체)은 중괄호("{}")로 표시됩니다.
위 4가지 규칙은 모두 Json 형식의 내용입니다.
예를 들어 다음 문장은
"베이징의 면적은 16,800제곱킬로미터이고 상주 인구는 1,600만 명입니다. 상하이의 면적은 6,400제곱 킬로미터이고 상주 인구가 1,800만 명입니다.
json 형식으로 작성하면 다음과 같습니다.
[ {"城市":"北京","面积":16800,"人口":1600}, {"城市":"上海","面积":6400,"人口":1800}]
데이터의 구조를 미리 알면 위의 작성을 더욱 단순화할 수 있습니다.
[ ["北京",16800,1600], ["上海",6400,1800]]
json은 배우고 사용하기가 매우 쉽다는 것을 알 수 있습니다. 불과 몇 년 만에 XML을 대체하여 인터넷에서 가장 인기 있는 데이터 교환 형식이 되었습니다.
3. PHP에서 JSON 중국어 문자가 깨졌습니다.
PHP에서 json_encode() 내장 함수를 사용하세요. > 5.2) php의 데이터는 다른 언어에서도 잘 전송되어 사용될 수 있습니다.
<?php $arr = array( 'Name'=>'希亚','Age'=>20); $jsonencode = json_encode($arr); echo $jsonencode; ?>
프로그램 연산 결과는 다음과 같습니다.
json_encode 다음에 배열의 한자가 u5e0cu4e9a처럼 나타납니다. 해결 방법은 urlencode() 함수를 사용하여 json_encode 이전에 urlencode()를 사용하여 모든 배열의 내용을 처리한 다음 json_encode( )를 사용하여 JSON 문자열로 변환하고 마지막으로 urldecode()를 사용하여 인코딩된 중국어를 다시 변환합니다.
<?php /************************************************************** * * 使用特定function对数组中所有元素做处理 * @param string &$array 要处理的字符串 * @param string $function 要执行的函数 * @return boolean $apply_to_keys_also 是否也应用到key上 * @access public * *************************************************************/ function arrayRecursive(&$array, $function, $apply_to_keys_also = false) { static $recursive_counter = 0; if (++$recursive_counter > 1000) { die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--; } /************************************************************** * * 将数组转换为JSON字符串(兼容中文) * @param array $array 要转换的数组 * @return string 转换得到的json字符串 * @access public * *************************************************************/ function JSON($array) { arrayRecursive($array, 'urlencode', true); $json = json_encode($array); return urldecode($json); } $array = array ( 'Name'=>'希亚','Age'=>20); echo JSON($array); ?>
이번에는 코드가 성공적으로 실행되었습니다
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 Android에서 PHP 중국어 문자가 깨졌을 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!