ホームページ >バックエンド開発 >PHPチュートリアル >php5.2 Json は中国語と GB のエンコーディング ソリューションを正しく処理できません_PHP チュートリアル

php5.2 Json は中国語と GB のエンコーディング ソリューションを正しく処理できません_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:35:03795ブラウズ

php5.2 の新しい json 関数は非常に人気がありますが、テストの結果、
json_encode には中国語の処理に問題があることが判明しました。
1 は GB エンコードを処理できず、すべての GB エンコードは
2 に置き換えられます。 .utf8 でエンコードされた中国語は、JavaScript のエスケープ関数の処理結果と同等の Unicode エンコードにエンコードされます

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

/*

json を正しく使用するには。 , まず、エンコードに utf8 エンコードを使用し、次に json_encode の戻り結果をわずかに処理して正しい結果を取得する必要があります。
これら 2 つの関数をラップする簡単なクラスを作成しました。
**/
class Json{
public static function encode($str){
$code = json_encode($str);
return preg_replace( "#\u([ 0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', Pack('H4', '\1'))", $code) ;
}

public static function decode($str){
return json_decode($str);
}
}

Json::encode($code); を使用する場合
/** これにより、utf8 でエンコードされた中国語を正しく処理できます。

追記: GB でエンコードされた中国語の場合、エンコード時に最初に UTF8 エンコードに変換し、次にエンコードして、デコード時に utf8 -> gb 変換を実行できます。
さらに、通常、json_encode の結果をクライアントに返して使用します。実際に JavaScript の unescape 関数を使用して、Unicode でエンコードされた中国語をデコードし、正しい中国語に復元できます。

または次を使用します: $title = mb_convert_encoding($title, 'HTML-ENTITIES', $this->_outCharset);//どのエンコーディングでも正常に表示されます
*******/


http://www.bkjia.com/PHPjc/746869.html

本当http://www.bkjia.com/PHPjc/746869.html技術記事 php5.2の新しいjson関数は非常に人気がありますが、テストの結果、json_encodeには中国語の処理に問題があることが判明しました。 1. GBエンコードを処理できず、すべてのGBエンコードが空に置き換えられます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。