ホームページ >バックエンド開発 >PHPチュートリアル >php_PHPチュートリアルのjson_encode形式の中国語の問題の解決策
1.原因分析:
データベースに保存する場合、MySQL は Unicode 文字を保存しません:
MySQL は、基本的な多言語フラット文字 (0x0000-0xFFFF) のみをサポートします。代わりに同義語を保存してみてください:)
更新: MySQL 5.5.3 (まだ GA ではありません) では、UTF8MB4 エンコーディングを使用する場合に補助文字がサポートされます。
json_encode 中国語を実行すると、各漢字は「uxxxx」にエンコードされます
データベースに保存するとき、「」はブロックされ、直接「uxxxx」になります
2. 問題を解決します:
原因を知ることで問題を解決できます。他の保管方法を選択することもできます。
あるいは、「」をさらに「」にエスケープして「」を保持するための適切な措置を講じてください私たちのソリューション:
1. 中国語を Unicode エンコーディングに変換する json_encode を回避します。
PHP バージョン 5.4 では、Json に新しいオプション JSON_UNESCAPED_UNICODE が追加されました。このオプションを追加すると、中国語は自動的にエンコードされなくなります。
$test = json_encode("深セン", JSON_UNESCAPED_UNICODE);
2. まず中国語フィールドを urlencode および json_encode し、次に urldecode を使用して中国語フィールドが Unicode に変換されないようにします。
$test =urldecode(json_encode(array('brief'=>urlencode(' Introduction'),'title'=>urlencode(title)));
3. Unicode 中国語が mysql によって特殊文字として削除される前に、'' を避けるためにさらに "" を "" にエスケープします
http://www.bkjia.com/PHPjc/371391.html