>백엔드 개발 >PHP 문제 >PHP JSON을 중국어로 변환하는 방법

PHP JSON을 중국어로 변환하는 방법

藏色散人
藏色散人원래의
2021-09-17 10:48:493483검색

php json을 중국어로 변환하는 방법: 1. 중국어 필드를 Urlencode합니다. 2. json_encode 함수를 사용하여 인코딩합니다. 3. urldecode를 사용하여 결과를 처리합니다.

PHP JSON을 중국어로 변환하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, Dell G3 컴퓨터

php json을 중국어로 변환하는 방법은 무엇입니까? PHP는 중국어 json 형식 문자열을 어떻게 변환합니까? json 형식 문자열을 변환하는 방법은 무엇입니까? PHP 매뉴얼에는 두 가지 기능이 제공됩니다:

json_encode: 변수의 JSON 인코딩

json_decode: JSON 형식 문자 문자열 인코딩

예를 살펴보겠습니다. 아래:

 $arr = ['a', 'b', 'c'];echo json_encode($arr);

출력은 다음과 같습니다.

["a","b","c"]

그러나 배열에 한자를 넣으면 문제가 발생합니다.

 $arr = [    '世界',    '你好',];echo json_encode($arr);

출력 결과는 다음과 같습니다.

["\u4e16\u754c","\u4f60\u597d"]

이 결과는 분명히 우리가 원하는 것이 아니지만 왜 이렇게 됩니까? 일어나다? 값에 중국어가 포함되어 있으면 PHP가 json 인코딩을 수행하면 맨 아래 레이어에서 중국어에 대한 유니코드 인코딩을 수행하여 결과를 읽을 수 없게 됩니다.

그렇다면 어떻게 해결해야 할까요?

방법 1

urlencode, urldecode 메소드를 사용하여 유니코드로 트랜스코딩하는 과정을 우회할 수 있습니다. 먼저 중국어 필드를 urlencode한 다음 json_encode를 사용하고 마지막으로 urldecode를 사용하여 결과를 처리하면 중국어가 정상적으로 표시될 수 있습니다. 구체적인 코드는 다음과 같습니다.

 $arr = [    '世界',    '你好',];echo urldecode(json_encode(array_map('urlencode', $arr)));

출력 결과는 다음과 같습니다.

["世界","你好"]

방법 2

PHP5.4 버전부터 공식에서는 Json에 JSON_UNESCAPED_UNICODE라는 새로운 옵션을 추가했습니다. 이 옵션을 추가하면 중국어가 자동으로 인코딩되지 않습니다. 구체적인 코드는 다음과 같습니다:

 $arr = [    '世界',    '你好',];echo json_encode($arr, JSON_UNESCAPED_UNICODE);

출력은 다음과 같습니다:

["世界","你好"]

보세요, 이것이 우리가 원하는 결과입니다 :)

Note

우리가 주목해야 할 것은 json_encode와 json_decode가 utf-8만 지원한다는 것입니다. 인코딩된 문자, gbk 문자에 대해 json 함수를 사용하려면 해당 문자를 변환해야 합니다.

추천 학습: "

PHP 비디오 튜토리얼

"

위 내용은 PHP JSON을 중국어로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.