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
www.bkjia.com本当http://www.bkjia.com/PHPjc/746869.html技術記事 php5.2の新しいjson関数は非常に人気がありますが、テストの結果、json_encodeには中国語の処理に問題があることが判明しました。 1. GBエンコードを処理できず、すべてのGBエンコードが空に置き換えられます...。