> 백엔드 개발 > PHP 튜토리얼 > 시스템 볼륨 정보 PHP가 json을 처리할 때 중국어 문제에 대한 솔루션

시스템 볼륨 정보 PHP가 json을 처리할 때 중국어 문제에 대한 솔루션

WBOY
풀어 주다: 2016-07-29 08:44:40
원래의
876명이 탐색했습니다.

연산 코드는

코드 복사 코드는 다음과 같습니다.


$ usr = new User( ; 123213","UserID":"1023"}
중국어가 있을 때는 두 가지 상황이 발생합니다.
첫 번째 경우는 객체 자체의 특정 값이 중국어이고 속성이 UTF-8로 인코딩된 경우 다음과 같이 출력됩니다.
{"PlatformID":"123213","UserID": "1023", "UserName":"u00b7u00f0u00b5u00b2u00c9u00b1u00b7u00f0u00ccu00fc"}

사용자 이름은 사람이 아닌 언어로 되어 있습니다. Firebug를 사용하여 보면 중국어로 되어 있습니다. (이 문제로 오랫동안 고생했습니다.)
두 번째 경우는 utf-8이 아닌 인코딩이므로 출력이 null이 됩니다.
{"PlatformID":"123213","UserID":"1023" ,"UserName": null}
이상하네요. 매뉴얼을 확인해보니 json_encode는 utf-8에만 유효하고 다른 인코딩은 null이 됩니다.
인코딩 변환 문제를 해결해 보겠습니다.
php.net에서 다른 사람의 기능을 보려면 다음과 같습니다.



코드를 복사합니다

코드는 다음과 같습니다.

개인 함수 to_utf8 ($in) { if (is_array($in)) { foreach ($in as $key => $value)

{

$out[$ this-> ;to_utf8($key)] = $this->to_utf8($value);
}
}
elseif(is_string($in))
{
if( mb_Detect_encoding($ in) != "UTF-8")
return utf8_encode($in);
else
return $in;
}
else
{
return $in;
}
return $out;
}


그래서 인코딩을 변환한 결과 더 이상 null이 아니라는 것을 알게 되어 기뻤습니다. Firebug를 사용하여 원래의 한자가 아니라는 것을 발견했습니다. ....혼란스러워지기 시작했습니다...
원래 인코딩으로 변환해야 합니까? 돌아가서 원래 인코딩을 찾으세요...
테스트 시작:
1. $usr->UserName을 직접 출력하고, 페이지 헤더에 charset=utf-8을 설정합니다
2.echo. json_encode($ usr) 출력 UserName=null

3. 페이지 헤더는 charset=gbk로 설정되어 있고 출력은 정확합니다. -> 원본 인코딩이 gbk인 것을 확인할 수 있습니다
마지막으로 IE를 통해 Chrome 및 Firefox 테스트에서 결론은 다음과 같습니다.
1. 페이지의 문자 집합이 데이터베이스와 일치하는지 확인하고 출력이 정상이어야 합니다.
2. json_encode를 수행할 때 데이터 인코딩이 utf-8이고 json_decode가 정상적인지 확인하세요.
3. UTF-8이 아닌 문자를 json_encode하려면 먼저 UTF-8로 변환하세요.
4.utf-8이 아닌 문자에 대해 json_decode를 수행할 때 원래 인코딩으로 변환하는 것을 잊지 말아야 합니다. 그렇지 않으면 왜곡된 문자가 출력됩니다.
하루 종일 나를 괴롭혔던 문제가 드디어 나왔습니다!! 해결되었습니다.
위 내용은 systemvolumeinformation의 내용을 포함하여 systemvolumeinformation PHP가 json을 처리할 때 발생하는 중국 문제에 대한 해결책을 소개하고 있습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿