>백엔드 개발 >PHP 튜토리얼 >PHP의 `json_encode`를 사용하여 UTF-8로 JSON에서 비ASCII 문자를 인코딩하는 방법은 무엇입니까?

PHP의 `json_encode`를 사용하여 UTF-8로 JSON에서 비ASCII 문자를 인코딩하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-27 00:15:02260검색

How to Encode Non-ASCII Characters in JSON with UTF-8 Using PHP's `json_encode`?

유니코드 대신 UTF-8 인코딩으로 PHP json_encode를 반환하는 방법

PHP의 json_encode 함수를 사용할 때 기본적으로 ASCII가 아닌 문자 유니코드 형식으로 인코딩됩니다. 그 결과 "á"와 같은 UTF-8 인코딩 문자 대신 "u00e1"과 같은 이스케이프 시퀀스가 ​​포함된 JSON 응답이 생성됩니다.

다음 예를 들어보세요.

<code class="php">$arr = array('a' => 'á');
echo json_encode($arr);</code>

출력은 다음과 같습니다.

<code class="json">{"a":"\u00e1"}</code>

이 문제를 해결하고 UTF-8로 인코딩된 문자로 JSON 응답을 반환하려면 다음 접근 방식을 활용할 수 있습니다.

PHP 5.4 :

PHP 5.4부터 json_encode는 JSON_UNESCAPED_UNICODE 옵션을 제공합니다. 이 옵션을 설정하면 ASCII가 아닌 문자는 이스케이프 시퀀스 없이 일반 UTF-8로 인코딩됩니다.

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

이전 PHP 버전:

PHP 이전 버전의 경우 5.4에서는 ASCII가 아닌 문자 인코딩을 생략하는 자체 JSON 인코더를 구현할 수 있습니다. 또는 Pear의 JSON 인코더를 활용하여 인코딩 기능에서 349~433행을 제거할 수 있습니다.

{"a":"u00e1"}와 {"a":"á"}의 차이점에 유의하세요. 순전히 JSON 구문으로 작성되는 방식입니다. 두 표현 모두 JSON 디코더에 의해 동일한 유니코드 값으로 디코딩됩니다.

위 내용은 PHP의 `json_encode`를 사용하여 UTF-8로 JSON에서 비ASCII 문자를 인코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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