php iconv()utf-8符号化文字列の中国語GB 2312への変換エラーの問題

885 ワード

PHP iconv関数回転gb 2312のバグ解決方法
質問:iconvは、gb 2312に文字"—"を変換するときにエラーが発生することを発見しました.
iconv("UTF-8","gb 2312//IGNORE",$data)ignoreは変換時のエラーを無視することを意味し、ignoreパラメータがなければ、その文字の後ろの文字列はすべて保存できません. 
さらにmb_convert_encodingはこのバグがないので、一番いい書き方はmb_です.convert_encoding($data, "gb2312", "UTF-8");ただし、enable mbstring拡張ライブラリが必要です. 
 
一般的にiconvを使用する場合、mb_は、元の符号化がどのような符号化であるか、またはiconv変換後に正常に表示されない場合にのみ使用されます.convert_encoding関数.
mb_convert_Encodingは、コンテンツに基づいて自動的に認識される複数の入力符号化を指定することができますが、iconvよりも実行効率が悪いです.1 $content   = iconv( "GBK" , "UTF-8″,  $content ); 2 $content   = mb_convert_encoding( $content "UTF-8″, " GBK");