ホームページ  >  記事  >  バックエンド開発  >  GBK 分割時に発生する文字化けの解決方法 Chinese_PHP チュートリアル

GBK 分割時に発生する文字化けの解決方法 Chinese_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:59:541182ブラウズ

次のような文字列 (GBK)、explode は正しい結果を取得できません:

1.$result =explode("|", "Teng Huatao|Haiqing"); その理由は、「韬」という文字 (タオと発音します) については、あなたが知らなくても問題ありません。それも知りません)、GBK エンコード値は 8f7c なので、残念ながら「|」の ASCII 値も 7c です

そのような問題はたくさんあります: GBK エンコードのエンコード範囲は 0x8140-0xfefe であるため、理論的には、下位バイトが 7c の単語には次のような問題が発生します。

1.倈(827c)、億(837c)、秧(b17c)、鴴(e57c)....など

1. まず、utf8 にトランスコーディングしてから、分解してから元に戻す方法です。

2. 次に、「分離」の代わりに正規表現を使用します。
3.preg_match_all("/([/x81-/xfe][/x40-/xfe])+/", $gbk_str, $matches);//$matches のインデックス 0 に対応する配列は次のように記述されます結果は単語の配列になります..

http://www.bkjia.com/PHPjc/328124.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/328124.html技術記事次のような文字列 (GBK) の場合、explode は正しい結果を取得できません: 1.$result =explode("|", "Teng Huatao|Haiqing"); 理由は、単語「Tao」(タオと発音します)のためです。 、知らなくても大丈夫です)、私も分かりません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。