"특수" 유니코드 문자가 u....로 인코딩되어 나타나는 이유
PHP를 사용하여 "특수" 유니코드 문자를 인코딩하는 경우 json_encode 함수에서는 "u"라는 접두사가 붙은 익숙하지 않은 문자열 리터럴로 나타나는 경우가 많습니다. 이 동작은 JSON의 문자 인코딩 메커니즘에 내재되어 있으며 인코딩 오류를 나타내지 않습니다.
JSON을 사용하면 문자를 u... 이스케이프 시퀀스로 표현할 수 있습니다. 여기서 ....는 문자의 유니코드 코드 포인트를 나타냅니다. . 이는 ECMAScript(JavaScript)의 문자열 리터럴이 구성되는 방식과 동일합니다.
예를 들어 문자 "말"은 JSON에서 "말" 또는 "u99ac"로 표시될 수 있습니다. 두 리터럴 모두 동일한 문자를 나타내며 동일하게 유효합니다. 호환되는 JSON 파서로 구문 분석하면 둘 다 동일한 문자열이 생성됩니다.
기본적으로 PHP의 json_encode는 ASCII가 아닌 문자에 대해 u.... 이스케이프 시퀀스를 선호합니다. 그러나 PHP 5.4 이상에서는 JSON_UNESCAPED_UNICODE 플래그를 지정하여 이 기본 설정을 재정의할 수 있습니다. 이렇게 하면 이스케이프 시퀀스 대신 리터럴 문자가 포함된 JSON 출력이 생성됩니다.
json_encode(['foo' => '馬'], JSON_UNESCAPED_UNICODE); // Output: {"foo":"馬"}
JSON_UNESCAPED_UNICODE를 지정하는 것은 개인 취향이며 JSON에서 유니코드 문자를 전송하기 위한 요구 사항이 아니라는 점에 유의하는 것이 중요합니다. 이스케이프 시퀀스와 리터럴 문자는 모두 JSON 표현에서 동일하게 유효합니다.
위 내용은 일부 유니코드 문자가 JSON에서 `u....` 시퀀스로 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!