유니코드 대신 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!