php では、json_decode() 関数は配列を json 形式のデータに変換できますが、json_decode() 関数は UTF-8 と ASCII エンコードのみをサポートします。gkb の場合は問題が発生します。分析と解決策。
json_decode() を使用して配列/オブジェクトを JSON 文字列にシリアル化する場合、基本的には UTF-8/ASCII エンコーディングのみをサポートしているようです。一部のサイトでは GBK/GB2312 エンコーディングを使用しています。現時点では、json_encode/json_decode を直接使用すると問題が発生する可能性があります。
コードは次のとおりです | コードをコピー |
$json = '{"a":"中国人"}'; 結果 {"テキスト":null,"ステータス":1} |
例えば、漢字を含む文字をnull(ヌル)に変換する場合、gbエンコードを使用してjson_decode()を使用して変換する必要がある場合がありますか?何をするか?昨夜、データベースを使用せずに音楽を追加するための小さな背景を書きました。つまり、php を使用して音楽を追加し、xml メニューを生成します。データベースを使用しない場合は、データを保存する方法を使用する必要があります。テキストとして保存したデータを直接使用するには、json_decode() を使用して配列を json 形式に変換することだと思います。使用する場合は、それを取り出して json_encode を使用して配列に変換することができます (おそらく js にはあります)。最近 json に置き換えられましたが、serialize() や unserialize()) を使用するなど、配列をシリアル化するより良い方法があるようです。本題に戻りましょう。 json_decode() は中国語を gb エンコードに変換できないため、まず中国語を英語エンコードに変換します。次に、この urlencode() を使用してエンコーディングを変換し、 json_decode() 変換を行うことができます。使用するときは、urldecode()を使用して中国語に変換するだけです
コードは次のとおりです | コードをコピー |
/* |