예: json_encode 처리 후 'Xu'는 'u80e5'가 되고, 최종 json의 중국어 부분은 유니코드 인코딩으로 대체됩니다. 우리가 해결해야 할 것은 객체를 json으로 변환하고 객체 내부의 중국어가 json에서 여전히 일반 중국어로 나타나는지 확인하는 것입니다. 이제 json_encode를 사용하는 것만으로는 목표를 달성할 수 없는 것 같습니다.
내 솔루션: 먼저 클래스의 중국어 필드를 URL 인코딩(urlencode)한 다음 개체를 json 인코딩(jsonencode)하고 마지막으로 최종 json인 json을 URL 디코딩(urldecode)하고 중국어 내부는 여전히 똑같습니다. 중국산이에요!
테스트 코드는 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.
class myClass {
public $item1 = 1;
public $item2 = 'English';
function to_json() {
//url 인코딩, 중국어를 유니코드로 변환하는 json_encode 방지
$this-> item2 = urlencode($this->item2);
$str_json = json_encode($this);//URL 디코딩, json으로 변환한 후 각 속성을 반환합니다. 변경되지 않은 상태로 유지
$ this->item2 = urldecode($this->item2);
return urldecode($str_json)
}
}
$c = new myClass() ;
echo json_encode ($c);
echo '
'
echo $c->to_json();
echo json_encode( $c);
echo '
'
echo json_encode('胥')
프로그램 출력 결과:
코드는 다음과 같습니다.{"item1":1,"item2":" u4e2du6587"}
{"item1 ":1,"item2":"中文"}{"item1":1,"item2":"u4e2du6587"}
"u80e5"
이 글이 모두의 더 나은 해결책을 모으는 출발점이 되기를 바랍니다...!
위 내용은 json_encode 내용을 포함하여 json_encode php의 json_encode 중국어 인코딩 문제 분석을 소개한 내용입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.