例: json_encode 処理後、「Xu」は「u80e5」になり、最終的な json の中国語部分は Unicode エンコーディングに置き換えられます。私たちが解決しなければならないのは、オブジェクトを json に変換し、オブジェクト内の中国語が json 内で通常の中国語として表示されるようにすることです。json_encode を使用するだけでは目標を達成できないようです。私の解決策:最初にクラスの中国語フィールドをURLエンコード(urlencode)し、次にオブジェクトをJSONエンコード(jsonencode)し、最後にJSON、つまり最後のJSONをURLデコード(urldecode)します。内部の中国語は依然として同じ中国語です!
テストコードは次のとおりです:
コードをコピーします コードは次のとおりです:
class myClass {
public $item1 = 1;
public $item2 = '中国語';
function to_json() {
//URL エンコード、json_encode による中国語から Unicode への変換を回避
$this->item2 = urlencode($this->item2);
$str_json = json_encode($this); json の変換後にデコードし、オブジェクトの属性が変更されていないことを確認するために各属性を返します
$this->item2 = urldecode($this->item2);
return urldecode($str_json);新しい myClass();
echo '
';
echo '
$c);
echo '
';
プログラムの出力結果:
コードは次のとおりです:
{"item1":1,"item2":"u4e2du6587"}
{"item1":1,"item2":"中国語"}
{"item1":1,"item2":"u4e2du6587"}
この記事から始めていただければ幸いですガイドとして皆様からより良い解決策を集めましょう…! 上記は、json_encode php の json_encode 中国語エンコード問題の分析を紹介しており、json_encode の内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。