PHP 配列のエンコード変換
一部の特殊文字の表示効果により、ajax テクノロジーを使用しているため、従来の問題であるエンコード変換も必要になりました。
一部のフォーム検証では json データを返す必要があります。PHP の json_encode 関数は utf-8 エンコーディングのみをサポートしているため、目的の効果は GBK 配列を utf-8 配列に変換して渡すことです。 json_encode 関数。
最初のアイデアは、配列をシリアル化し、iconv 関数を使用してエンコーディングを変換し、それを逆シリアル化することです。コードは次のとおりです。
unserialize(iconv('gbk','utf-8',serialize($array)));
function array_iconv($in_charset,$out_charset,$arr){ return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';')); }
フォローアップ: その後、より良い方法があるかどうかを確認するためにインターネットで情報を検索しました。見つかったものはどれも似たようなもので、配列の要素が多すぎる場合や次元が多すぎる場合は、パフォーマンスは確実に良くありません。何が起こっているのでしょうか? データの一貫性を確保するために、N 次元配列であるか連想配列であるかを考慮する必要はありません。配列の変換前と変換後。コードの長さとループとネイティブ メソッドの比較から判断すると、誰もがすでに選択肢を持っていると思います。