PHP プログラミングでは、配列の操作でエンコード変換に関連する問題が発生することがあります。
一部の特殊文字の表示効果のため、Ajaxテクノロジーを使用しているため、エンコード変換という古い問題も伴います。
これが最初に行われた方法です。配列をシリアル化した後、iconv 関数を使用してエンコーディングを変換し、それを逆シリアル化します。 コードは次のとおりです。unserialize(iconv('gbk','utf-8',serialize($array)));得られた結果は空白であったことを後で思い出しました。デフォルトは
設定ファイルで設定されました エンコーディング ini_set('default_charset', 'gbk'); gbk を使用して utf-8 文字列を逆シリアル化するのは、明らかに使いにくいです。 ここで、シリアル化とシリアル化の間に ini_set('default_charset', ' を追加します)。 deserialization.utf-8'); も可能であるはずですが、これはグローバル エンコーディング設定であり、データベース操作などの他の場所でエンコーディングの問題を引き起こしやすいため、常に少し面倒に感じます。次に、考え方を変更し、配列プロトタイプを構築するシリアル化メソッドを使用し、var_export 関数を使用します。 最終的な関数は次のとおりです。
コードは次のとおりです。function array_iconv($in_charset,$out_charset,$arr){ return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';')); }原理は非常に単純です。 true に設定すると、配列のプロトタイプ文字列が返され、文字列が utf-8 エンコーディングに変換され、eval を使用して戻り値が実行されます (フォローアップ: 後で、より良い方法があるかどうかを確認するためにインターネットで情報を検索しました。見つかったものはどれも似たようなもので、配列の要素が多すぎる場合や次元が多すぎる場合は、パフォーマンスが低下します。ネイティブコード方式の方が優れており、N 次元配列であるか連想配列であるかを考慮する必要がなく、事前にデータの一貫性が確保されています。そして配列変換後。コードの長さとループとネイティブ メソッドの比較から判断すると、誰もがすでに選択肢を持っていると思います。
以上がPHP配列エンコーディングの変換例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。