ホームページ  >  記事  >  バックエンド開発  >  json文字化け問題

json文字化け問題

WBOY
WBOYオリジナル
2016-06-23 14:40:081106ブラウズ


レコード 1 | 255 0 | 2011-08-15 0 | が文字化けしています。バックグラウンドでデータベースのデータを変更することができず、php を使用してデータベースを確認し、取得したデータを JSON 文字列に変換すると、文字化けを含む JSON 文字列を解析すると、フロントエンドがエラーを報告します。 json を使用する 検証ツールも 16 行目の解析エラーに失敗します:
... "dpi": "A Mang? Hao Gai εshinッヅ? Chao? Ga?? Imitation?",
------ ---- ------------^
'STRING'、'NUMBER'、'NULL'、'TRUE'、'FALSE'、'{'、'[' が必要です

があります他のデータベースでは文字化けしないのが正常です。現在の問題は、バックグラウンドから渡す文字化けした文字を含む json 文字列によってフロントエンド js がエラーを報告し、ユーザーの使用に影響を与えることです。エラーを報告せずに json を表示し続ける方法はありますか。 ?


ディスカッションに返信(解決策)

エンコードは gb2312 ですか?

ajax を使用しましたか?

1. データベースにも文字化けが見られますか?そうでない場合、それは何ですか?
2. エラーを回避するだけで十分ですか?

エンコードは gb2312 ですか?

ajax を使用しましたか?
HTML ページは utf8 を使用し、データベースは mysql charset=latin1 を使用して、変換された結果はデー​​タベースと一致します。コマンドラインで同じものを選択します

1. データベースに文字化けが見られますか?そうでない場合、それは何ですか?

2. エラーを回避するだけで十分ですか?
データベースに文字化けがあります。これは、トランスコーディングの問題か、json を使用して渡したときに文字化けしたデータ自体が取り出されたかのどちらかです。解析のためにフロントエンド js に送信すると、エラーが発生します。 つまり、文字化けが表示されるためには、データベースとの一貫性が必要であるだけです。

1. にも文字化けが表示されます。データベースは?そうでない場合、それは何ですか?

2. エラーレポートを回避するだけで十分ですか?

{ "id": 1936,
"name": "220kV バスバー保護 IRCS915AB",
"ft": 11,
"dpi t」: 4、
“dpi” ": "$ ? 韫?",
"time": "2011-08-17 09:16:04",
"info": "3_20110817091604.txt"
}
js を d に解析するとこうなりますwhen pi 不正な文字エラーを報告します

読み取ったデータの bas64 エンコーディングを投稿します

方法は

変数 $s を読み取るなど、文字化けしたレコードを読み込みます
次に echobase64_encode($s) を実行します
結果を投稿します
;
読み取ったデータの bas64 エンコーディングは、

変数 $s への読み込みなど、文字化けしたレコードを読み取るためです

その後、base64_encode($s) を実行します
結果を投稿します


usingbase64_encode(mb_convert_encoding($string) , 'utf-8', 'gbk')):
JAMF56KeCwjpn6s/YQ0FCAE=

Base64_encode($string) の結果のみが必要です
トランスコードするとシーンは破壊されます

Base64_encode の結果のみが必要です($string) 結果
トランスコードするとシーンは破棄されます

申し訳ありませんが、今処理したものは mysql クラスで自分で自動的に処理しました
これはトランスコードされていません JAOyBbROCwjouay/YQ0FCAE=

結果だけが欲しいですBase64_encode($string) の
トランスコードするとシーンが壊れます。エスケープしてください。


Base64_encode($string) の結果のみが必要です
トランスコードするとシーンが破壊されます
JSON 文字列に不正な文字が含まれていることを確認し、それらをエスケープしてください。

逃げる方法

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。