JSON은 가벼운 데이터 교환 형식 인 JavaScript 객체 표기법 (JavaScript 객체 표기법)의 약어입니다. PHP에서 개발자는 내장 기능 JSON_ENCODE ()를 사용하여 배열 또는 객체를 전면과 후면 끝 또는 다른 시스템 간의 데이터 상호 작용을 위해 배열 또는 객체를 JSON 형식으로 변환 할 수 있습니다. PHP 5.2.0 버전 이후 JSON_ENCODE ()는 웹 개발에 널리 사용되었습니다.
json_encode () 함수가 중국어가 포함 된 배열 또는 객체를 처리하면 기본 동작은 한자를 유니 코드 인코딩으로 변환합니다. 예를 들어:
$arr = array('name' => '장 산', 'age' => 18, 'gender' => '남성');
echo json_encode($arr);
// 출력 결과:{"name":"\u5f20\u4e09","age":18,"gender":"\u7537"}
중국어가 유니 코드 인코딩으로 빠져 나가는 것을 알 수 있으며, 경우에 따라 차량화 된 코드 디스플레이 또는 불편한 판독 값을 유발할 수 있습니다.
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 이상인지 확인해야합니다.
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 사용을 선호합니다. 그렇지 않은 경우 수동 탈출 및 디코딩을 통해 동일한 효과를 얻을 수 있습니다. 중국 코딩 문제를 올바르게 처리하면 프론트 엔드 및 백엔드 상호 작용의 사용자 경험과 데이터 가독성이 향상 될 수 있습니다.