php json을 배열로 변환할 때 잘못된 코드 문제가 자주 발생합니다. 이 문제의 근본 원인은 문자 집합의 불일치입니다.
Java, Python 및 기타 언어의 기본 문자 집합은 utf-8이고, PHP의 기본 문자 집합은 ISO-8859-1입니다. 따라서 json 문자열을 처리할 때 json 문자열의 문자 집합이 utf-8이고 php의 문자 집합이 ISO-8859-1이면 변환된 배열이 깨집니다.
이 문제를 해결하는 방법을 살펴보겠습니다.
1. json 문자열의 문자 집합을 지정합니다
json 문자열의 문자 집합을 알면 문자 집합을 지정하여 문제를 해결할 수 있습니다.
샘플 코드:
$json_str = iconv('utf-8','ISO-8859-1',$json_str); //将json字符串的字符集从utf-8转换为ISO-8859-1 $arr = json_decode($json_str, true); //将json字符串转换成数组
2. php 기본 문자 집합 변경
json 문자열의 문자 집합을 알 수 없거나 많은 수의 json 문자열을 처리해야 하는 경우 php 기본 문자 집합을 변경할 수 있습니다. 이렇게 하면 json 문자열을 처리할 때 문자가 깨지는 일이 없습니다.
php의 기본 문자셋을 변경하는 방법은 php.ini 파일에서 수정하는 것입니다. 다음 단계를 통해 이 작업을 완료할 수 있습니다.
터미널에 다음 명령을 입력하여 php.ini 파일을 엽니다:
sudo vi /etc/php/7.3/apache2/php.ini
In php.ini 파일에서 다음 두 줄을 찾아 주석 처리를 제거하고 문자 집합을 utf-8로 변경합니다.
;default_charset = "iso-8859-1" default_charset = "utf-8"
php.ini 파일을 저장한 후 변경 사항을 적용하려면 Apache를 다시 시작해야 합니다. 효과:
sudo service apache2 restart
php 기본 문자 세트를 변경한 후 json 문자열을 올바르게 구문 분석할 수 있는지 테스트할 수 있습니다. 샘플 코드:
$arr = json_decode($json_str, true); //将json字符串转换成数组
Summary
Json을 사용하여 잘못된 코드를 배열하는 것은 일반적인 문제이지만 해결하기 쉬운 문제이기도 합니다. json 문자열의 문자 집합을 지정하거나 PHP 기본 문자 집합을 변경하면 이 문제를 해결할 수 있습니다. 어느 쪽이든, 변환을 올바르게 수행하려면 문자 집합의 개념을 이해해야 합니다.
위 내용은 PHP json이 잘못된 배열 코드로 변환되면 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!