PHP에서 UTF-8 문자열 처리: json_encode 및 JSON_UNESCAPED_UNICODE
다국어 콘텐츠가 포함된 PHP 스크립트에서 json_encode 함수의 동작은 의문을 제기할 수 있습니다. 유니코드 문자는 16진수 엔터티로 끝나는 경우가 많습니다.
예:
입력: echo $text;
출력: "База данни грешка."
입력: json_encode($text);
출력: "u0411u0430u0437u0430 u0434u0430u043du0 43du0438 u0433u0440u0435u0448u043au0430."
변환 이해
기본적으로 json_encode는 유니코드 문자열을 16진수 엔터티로 인코딩합니다. 이는 유니코드를 지원하지 않는 이전 시스템과의 호환성을 보장하기 위한 JSON의 일반적인 관행입니다.
해결책: JSON_UNESCAPED_UNICODE
PHP 5.4.0에 도입된 JSON_UNESCAPED_UNICODE 플래그 이 변환을 우회할 수 있습니다. 지정되면 json_encode에 UTF-8 문자를 직접 출력하도록 지시합니다.
사용법:
<code class="php">json_encode($text, JSON_UNESCAPED_UNICODE);</code>
이 플래그를 사용하면 출력이 원래 유니코드 문자 인코딩을 유지합니다. :
<code class="php">\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0430.</code>
JSON_UNESCAPED_UNICODE 플래그를 사용하면 JSON 출력에서 원래 유니코드 문자를 보존할 수 있습니다. 이는 다국어 콘텐츠로 작업하거나 진정한 유니코드 지원이 필요한 시스템과 통합할 때 특히 유용합니다.
위 내용은 PHP에서 json_encode를 사용할 때 유니코드 문자가 16진수 엔터티로 인코딩되는 것을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!