PHP 개발 중에 JSON은 일반적으로 사용되는 데이터 교환 형식으로 자주 사용됩니다. 그러나 많은 개발자가 중국 콘텐츠를 포함하는 JSON 데이터를 처리하면 페이지가 중국어가 달린 코드를 출력한다는 것을 알게 될 것입니다. 이 현상의 이유는 일반적으로 부적절한 인코딩 설정과 관련이 있습니다. 이 기사는 몇 가지 일반적인 방법을 통해이 문제를 해결하는 데 도움이됩니다.
JSON 데이터를 출력하기 전에 PHP의 헤더 기능을 통해 올바른 응답 헤더가 설정되어 있는지 확인하고 컨텐츠 유형 및 문자 인코딩을 명시 적으로 지정하십시오.
header('Content-Type: application/json; charset=utf-8');
이 응답 헤더는 브라우저에 반환 된 컨텐츠가 JSON 형식이며 UTF-8로 인코딩되어 중국어가 클라이언트에 차지하는 것으로 표시되는 것을 피하는 데 도움이됩니다.
기본적으로 json_encode 함수를 사용하는 경우 중국어는 유니 코드로 인코딩됩니다. JSON_UNESCAPED_UNICODE 매개 변수를 추가하면 중국어를 방지 코드를 방지하기 위해 중국어를 유지할 수 있습니다.
$data = ['name' => '장 산', 'age' => 25];
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
이런 식으로 출력 JSON 문자열의 한자는 탈출되지 않으므로 정상적인 디스플레이를 보장합니다.
일부 특수 시나리오에서는 응답 헤더 및 인코딩 매개 변수가 설정되어 있더라도 여전히 차별화 된 코드가 있습니다. MB_Convert_Encoding 함수를 통해 JSON 문자열의 인코딩을 수동으로 변환 할 수 있습니다.
$data = ['name' => 'Li Si', 'age' => 30];
$json = json_encode($data);
// 할 것이다JSON문자열UTF-8로 돌아갑니다GBK코딩
$json = mb_convert_encoding($json, 'GBK', 'UTF-8');
이 코드는 결과를 특정 인코딩 환경 (예 : GBK)으로 출력 해야하는 상황에 적합합니다. 실제 비즈니스 요구에 따른 대상 인코딩의 유연한 조정.
JSON Chinese Garbled 코드는 PHP 개발에서 일반적이지만 쉽게 간과되는 문제입니다. 응답 헤더를 설정하고 JSON_ENCODE 매개 변수를 합리적으로 사용하고 필요할 때 문자 인코딩 변환 기능을 사용하면 발굴 된 코드를 효과적으로 피할 수 있습니다. 개발자는 JSON 데이터를 처리 할 때 중국 정보를 정확하게 표시 할 수 있도록 코딩 일관성을 유지해야합니다.
관련 태그:
JSON