>백엔드 개발 >PHP 튜토리얼 >JSON 인코딩 후 특수 유니코드 문자가 왜곡되어 나타나는 이유는 무엇입니까?

JSON 인코딩 후 특수 유니코드 문자가 왜곡되어 나타나는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-10 18:03:17870검색

Why Do Special Unicode Characters Appear Distorted After JSON Encoding?

JSON으로 인코딩된 "특수" 유니코드 문자 해석

"특수" 유니코드 문자를 통합할 때 JSON으로 인코딩된 후 왜곡되어 나타나는 경우가 많습니다.

echo json_encode(['foo' => '馬']);
// Output: {"foo":"\u99ac"}

이런 일이 발생하는 이유를 이해하는 것은 중요합니다.

JSON 인코딩 표준

JSON 인코딩은 ECMAScript(이전의 JavaScript) 문자열 리터럴 형식(섹션 7.8.4)을 활용합니다. 문자를 "u" 접두사가 붙은 16진수 숫자로 표시하고 그 뒤에 코드 포인트를 나타내는 4개의 16진수 숫자를 표시할 수 있습니다.

"\u99ac"

이 표현은 문자열 리터럴 "말"과 동일하며 동일한 유니코드를 전달합니다. 호환 JSON 파서로 구문 분석할 때의 문자입니다.

PHP의 JSON 인코딩 기본 설정

PHP의 json_encode 함수는 "u...." 이스케이프 시퀀스를 사용하여 ASCII가 아닌 문자를 인코딩하는 경우가 많습니다. 이는 선택 사항이지만 유효한 JSON을 생성합니다.

인코딩 사용자 정의

원하는 경우 PHP 5.4에 도입된 JSON_UNESCAPED_UNICODE 플래그는 리터럴 문자 인코딩을 허용합니다.

echo json_encode(['foo' => '馬'], JSON_UNESCAPED_UNICODE);
// Output: {"foo":"馬"}

이 커스터마이징은 필수라기보다는 선호사항이라는 점을 기억하는 것이 중요합니다. JSON으로 유니코드 문자를 전송합니다.

위 내용은 JSON 인코딩 후 특수 유니코드 문자가 왜곡되어 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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