ホームページ  >  記事  >  バックエンド開発  >  iconv を使用せずに PHP gb2312 を utf-8 に変換します。これは信頼できません。

iconv を使用せずに PHP gb2312 を utf-8 に変換します。これは信頼できません。

WBOY
WBOYオリジナル
2016-06-23 14:04:38735ブラウズ

iconv("GB2312", "UTF-8//IGNORE",$str);
"//IGNORE" が無いとエラー後に表示されません。
他に考えられる方法はありますか?


ディスカッションに返信 (解決策)

試してみてください
mb_convert_encoding

通常は gb2312 の代わりに GBK を使用します。gb2312 ではエンコードされる中国語の文字が少なすぎます
Web ページでは charset=gb2312 を使用してください実はブラウザというのは、まだ GBK を呼び出しているので、gb2312 がほとんどの漢字を表示できると誤解しないでください

不可能です! gb2312 全体が utf-8 に含まれており、文字を失うことはありません
gbk 文字を

試してください
mb_convert_encoding
実行できません。

PHP は utf-8 と gb2312 エンコーディング間の変換を実装します

PHP は gb2312 と utf-8 エンコーディング関数の変換に iconv ライブラリを使用しません

上記 2 つの記事が現在の問題の解決に役立つことを願っています。

うまくいきません。 。

5 階に、不足している単語を投稿した方が良いです

たとえば、MSSQL で「金惠源のこれこれのアドレス」、

iconv("GB2312", "UTF-8",$str) を使用する場合) ;
出力は次のとおりです: "XXXX gold"
iconv("GB2312", "UTF-8//IGNORE",$str);
出力は次のとおりです: "XXXXXXXXXXXXXX address"

iconv をオンラインで確認しました。小さなバグ。個々のキャラクターに遭遇すると、キャラクターは失われます。

$str = "金匯園のアドレス";

echo iconv('gb2312', 'utf-8', $str); //金匯園のアドレス
echo iconv('gbk', 'utf-8', $str); //ジン・フイユアンのアドレス
問題ありません
環境に問題がある場合は、php のバージョンが低すぎるとしか言えません


たとえば、MSSQL "○○ Jin Huiyuan ○○アドレス" の場合、

iconv("GB2312", "UTF-8",$str) の場合、出力は次のようになります。 and-so Jin"

iconv("GB2312", "UTF -8//IGNORE",$str);
出力は次のとおりです: "So and so gold {park so and so address"

iconv をオンラインで確認しました。小さなバグでした。個々のキャラクターに遭遇すると、キャラクターは失われます。
りー
ここでは普通です。

もちろんできます。
GB2312のデータベースには金恵源某氏の住所が保存されているが、読み出す際に問題が発生した。

XX Jinhuiyuan のアドレスは bg2312 エンコーディングで外部に保存されています
現在処理されているページは utf-8 です、この違いに注意してください

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。