phpチュートリアルにはjsonデータを処理するためのjson_encodeが付属しているため、中国語は十分にサポートされていません
例を見てみましょう。echo json_encode(array(123213,'中国'));
{"プラットフォーム ID":"123213","ユーザー ID":"1023","ユーザー名":"u00b7u00f0u00b5u00b2u00c9u00b1u00b7u00f0u00ccu00fc"}
英語は正しく解析できることがわかりますが、中国語は u00b7u00f0u00b5u00b2u00c9u00b1u00b7u00f0u00ccu00fc として出力されます。ああ、これは Unicode エンコードである可能性がありますが、テストしたことはなく、単なる推測です。 jsonの中国語文字化けを解決する関数を見てみましょう
最終的に、IE、Chrome、Firefox のテストを通じて、次の結論に達しました:プライベート関数 to_utf8($in)
3. ページヘッダーは charset=gbk に設定されており、出力は正しいです -> 元のエンコーディングが gbk であると判断できます
{
if (is_array($in)) {
foreach ($in as $key => $value)
{
$out[$this->to_utf8($key)] = $this->to_utf8($value); }
}
elseif(is_string($in))
{
if(mb_detect_encoding()($in) != "utf-8")
utf8_encode($in) を返します。 それ以外は
ドルを返します。 }
それ以外は
{
ドルを返します。 }
$out を返します。 }
1. $usr->usernameを直接出力し、文字化けしたページにcharset=utf-8を設定します。 2.echo json_encode($usr) 出力 username=null
1. ページの文字セットがデータベース チュートリアルと一致していることを確認し、出力が正常である必要があります。
2. json_encode を実行するときは、データ エンコーディングが utf-8 であり、json_decode が通常であることを確認してください。
4. utf-8 以外の文字に対して json_decode を行う場合は、必ず元のエンコーディングに変換することを忘れないでください。変換しないと文字化けが出力されます!!
www.bkjia.com