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
php.ini ファイルで次の 2 行を見つけてコメントを解除し、文字セットを utf-8 に変更します。
;default_charset = "iso-8859-1" default_charset = "utf-8"
sudo service apache2 restart
$arr = json_decode($json_str, true); //将json字符串转换成数组概要json から配列への変換の文字化けはよくある問題ですが、簡単に解決できる問題でもあります。この問題は、json 文字列の文字セットを指定するか、PHP のデフォルトの文字セットを変更することで解決できます。いずれの場合でも、変換を正しく行うには、文字セットの概念を理解する必要があります。
以上がphp jsonが配列化けコードに変換された場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。