현재 위치: > 최신 기사 목록> PHP에서 JSON 중국 인코딩 문제를 해결하는 방법

PHP에서 JSON 중국 인코딩 문제를 해결하는 방법

gitbox 2025-07-26

PHP에서 JSON 인코딩은 무엇입니까?

JSON은 가벼운 데이터 교환 형식 인 JavaScript 객체 표기법 (JavaScript 객체 표기법)의 약어입니다. PHP에서 개발자는 내장 기능 JSON_ENCODE ()를 사용하여 배열 또는 객체를 전면과 후면 끝 또는 다른 시스템 간의 데이터 상호 작용을 위해 배열 또는 객체를 JSON 형식으로 변환 할 수 있습니다. PHP 5.2.0 버전 이후 JSON_ENCODE ()는 웹 개발에 널리 사용되었습니다.

PHP에서 JSON 중국 인코딩으로 인한 멍청한 코드의 문제

json_encode () 함수가 중국어가 포함 된 배열 또는 객체를 처리하면 기본 동작은 한자를 유니 코드 인코딩으로 변환합니다. 예를 들어:

 
$arr = array('name' => '장 산', 'age' => 18, 'gender' => '남성');
echo json_encode($arr);
// 출력 결과:{"name":"\u5f20\u4e09","age":18,"gender":"\u7537"}

중국어가 유니 코드 인코딩으로 빠져 나가는 것을 알 수 있으며, 경우에 따라 차량화 된 코드 디스플레이 또는 불편한 판독 값을 유발할 수 있습니다.

솔루션 1 : JSON_UNESCAPED_UNICODE 매개 변수를 사용하십시오

PHP 5.4.0에서 시작하여 JSON_ENCODE () 함수는 JSON_UNESCAPED_UNICODE 옵션을 지원합니다. 이 옵션을 사용하여 중국어가 탈출하지 못하도록하므로 한자가 출력을 유지하십시오.

 
$arr = array('name' => '장 산', 'age' => 18, 'gender' => '남성');
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
// 출력 결과:{"name":"장 산","age":18,"gender":"남성"}

이 방법은 가장 간단하고 권장되는 방법이지만 서버의 PHP 버전이 5.4 이상인지 확인해야합니다.

해결책 2 : 수동 탈출 및 중국어 디코딩

PHP 5.4 이하의 버전의 경우 urlencode ()urldecode () 메소드를 통해 수동으로 탈출하고 해독 할 수 있습니다.

 
$arr = array('name' => '장 산', 'age' => 18, 'gender' => '남성');
$new_arr = array();
foreach($arr as $key => $value) {
    $new_arr[$key] = urlencode($value);
}
echo urldecode(json_encode($new_arr));
// 출력 결과:{"name":"장 산","age":18,"gender":"남성"}

이 방법은 이전 버전의 PHP와 호환됩니다. 약간 번거롭지 만 중국인이 탈출하는 문제를 효과적으로 피할 수 있습니다.

요약

중국 디스플레이를 더 잘 지원하기 위해 개발자는 현재 PHP 버전을 기반으로 적절한 솔루션을 선택할 수 있습니다. 버전이 지원하는 경우 JSON_UNESCAPED_UNICODE 사용을 선호합니다. 그렇지 않은 경우 수동 탈출 및 디코딩을 통해 동일한 효과를 얻을 수 있습니다. 중국 코딩 문제를 올바르게 처리하면 프론트 엔드 및 백엔드 상호 작용의 사용자 경험과 데이터 가독성이 향상 될 수 있습니다.