>  기사  >  백엔드 개발  >  유니코드 이스케이프 없이 PHP JSON 출력에서 ​​UTF-8 문자를 인코딩하는 방법은 무엇입니까?

유니코드 이스케이프 없이 PHP JSON 출력에서 ​​UTF-8 문자를 인코딩하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 20:51:03277검색

How to Encode UTF-8 Characters in PHP JSON Output without Unicode Escaping?

PHP JSON 출력에서 ​​UTF-8 보존

질문:

PHP의 json_encode 함수가 non을 이스케이프하는 것을 어떻게 방지할 수 있습니까? -ASCII 문자를 유니코드 시퀀스로 사용하시겠습니까? 원하는 출력은 유니코드 시퀀스가 ​​아닌 UTF-8로 인코딩된 문자입니다. 예를 들어, "á" 값을 포함하는 배열은 {"a":"u00e1"}가 아닌 {"a":"á"}로 인코딩되어야 합니다.

답변:

JSON 사양에서는 두 가지 인코딩 형식을 모두 허용하지만 {"a":"u00e1"} 및 {"a":"á"}는 JSON 디코더에서 동일하게 처리됩니다.

PHP 버전 5.4 이상의 경우 json_encode JSON_UNESCAPED_UNICODE 옵션을 제공합니다. 이 옵션은 이스케이프 없이 일반 UTF-8 인코딩 문자를 출력합니다.

<code class="php">$json = json_encode($arr, JSON_UNESCAPED_UNICODE);</code>

이전 PHP 버전의 경우 다음 옵션을 고려하세요.

  • 사용자 정의 JSON 인코더: 비ASCII 문자에 대한 문자 이스케이프를 생략하는 사용자 정의 JSON 인코더를 구현합니다.
  • Pear의 JSON 인코더: 349~433행을 제거하여 Pear JSON 인코더를 수정합니다. 이 섹션에는 이스케이프 논리가 포함되어 있습니다.

위 내용은 유니코드 이스케이프 없이 PHP JSON 출력에서 ​​UTF-8 문자를 인코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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