次のような文字列 (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 に対応する配列は次のように記述されます結果は単語の配列になります..