ホームページ > バックエンド開発 > PHPチュートリアル > php_PHPチュートリアルのjson_encodeでの中国語文字化けの解決策

php_PHPチュートリアルのjson_encodeでの中国語文字化けの解決策

WBOY
リリース: 2016-07-13 10:56:33
オリジナル
1076 人が閲覧しました

大まかな解決策は、JSON を処理するときに文字が UTF8 でエンコードされていることを確認することです。具体的には、データベース エンコーディングとページ エンコーディングの両方を UTF8 に変更できます。もちろん、gbk エンコーディングを使用したい場合は、JSON 処理の前に文字を UTF8 形式に変換できます

1. json_encode()

これは変数の JSON エンコードによく使用される関数ですが、テキストの形式が utf-8 ではない場合、テキストが gb2312 である場合など、中国語のトランスコーディングで問題が発生します


コードは次のとおりです コードをコピー

$jsonText = 配列 (
0 => 配列 (
'id' => '1',
'名前' => 'テキスト 1'
)、
1 => 配列 (
'id' => '2',
'名前' => 'テキスト 2'
)
);

echo json_encode($jsonText);
//[{"id":"1","name":""},{"id":"2","name":""}]
// 中国語の文字がエスケープされずに空の "" であることがわかります。これは、json がエンコーディングをエスケープするだけであるため (%B0%AE と同様)、上記のステートメントは最初にエンコーディングを変換する必要があります
?>

解決策

コードは次のとおりです コードをコピー

foreach ($jsonText as $key=>$value)
{
$jsonText[$key]['name'] = urlencode($value['name']);
}
echo json_encode($jsonText);
?>
クライアント処理

最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート