ホームページ  >  記事  >  バックエンド開発  >  php bomで中国語文字化けが発生した場合の対処方法

php bomで中国語文字化けが発生した場合の対処方法

藏色散人
藏色散人オリジナル
2021-12-01 10:18:132076ブラウズ

php bom 中国語文字化けコードの解決策: 1. 対応する PHP 開発ファイルを開きます; 2. 「$bom = Pack("C3",239,187,191);$strcsv =$bom.$strcsv;」を追加します。キャンです。

php bomで中国語文字化けが発生した場合の対処方法

この記事の動作環境: Windows7 システム、PHP7.4 バージョン、DELL G3 コンピューター

こんな場合はどうすればよいですかphp bom has Chinese 文字化け?

PHP 開発における BOM による文字化けの問題

プロジェクトでは、CSV ファイルを PHP で直接ダウンロードする必要があります。ファイルをダウンロードするとエクセルで文字化けが表示されます。したがって、BOM を増やす方法は次のとおりです。

$bom = pack("C3",239,187,191);   //bom: xEFxBBxBF
$strcsv =$bom.$strcsv;

以下は、インターネットから引用したより簡潔な説明です。

BOM の説明: 「ZERO WIDTH NO-」というコードがあります。 BREAK SPACE" が UCS エンコーディング文字に含まれており、そのエンコーディングは FEFF です。 FEFF は UCS には存在しない文字ですので、実際の送信では出現しないはずです。 UCS 仕様では、バイト ストリームを送信する前に文字「ZERO WIDTH NO-BREAK SPACE」を送信することが推奨されています。このように、受信機が FEFF を受信した場合、バイト ストリームがビッグ エンディアンであることを示し、FFFE を受信した場合、バイト ストリームがリトル エンディアンであることを示します。したがって、「ZERO WIDTH NO-BREAK SPACE」という文字は BOM とも呼ばれます。

UTF-8 では、バイト順序を示すために BOM は必要ありませんが、BOM を使用してエンコード方式を示すことができます。 「ZERO WIDTH NO-BREAK SPACE」という文字の UTF-8 エンコーディングは EF BB BF です。したがって、受信側が EF BB BF で始まるバイト ストリームを受信すると、それが UTF-8 でエンコードされていることを認識します。 Windows は、BOM を使用してテキスト ファイルのエンコーディングをマークします。

PHP は設計時に BOM の問題を考慮しませんでした。つまり、UTF-8 でエンコードされたファイルの先頭にある BOM の 3 文字は無視されません。

推奨学習: 「PHP ビデオ チュートリアル

以上がphp bomで中国語文字化けが発生した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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