ホームページ  >  記事  >  バックエンド開発  >  PHPのメモ帳のコードが文字化けする

PHPのメモ帳のコードが文字化けする

王林
王林オリジナル
2019-09-26 11:49:082854ブラウズ

PHPのメモ帳のコードが文字化けする

PHP でメモ帳に文字化けが書き込まれる

PHP を使用しているときにファイルの文字化けに遭遇したことがある人は多いと思います。書く。最初にエンコードして解決しようとするかもしれませんが、たとえ UTF-8 エンコードに変換したとしても、最終結果は理想的ではないことがよくあります...

それでは、根本的な原因は何でしょうか? ?ヘッド BOM が欠けているだけです (もちろん、これは Js BOM を指すものではありません)。

BOM

BOM の話が出てくるので、この人のことをあまり知らない学生もいるかもしれませんが、ここで簡単に説明します。ベテランの方は読み飛ばしていただいても構いません。 Windows でメモ帳などのプログラムを使用してテキスト ファイルを UTF-8 形式で保存すると、メモ帳はファイル ヘッダーの前にいくつかの非表示文字 (EF BB BF) を追加します。これはいわゆる BOM (バイト オーダー) です。マーク)。 )。

は、ファイルの冒頭に「EF BB BF」といういくつかの非表示文字が含まれている限り、メモ帳に保存されたファイルに限定されません (16 進数は xEFxBBxBF である必要があり、バイナリでファイルを編集するときに表示されます)。これは規約のようなもので、システムはこれを認識すると、ファイルが UTF-8 でエンコードされていると判断します。

ファイルに BOM がない場合、ユーザーに提示するファイルが文字化けする可能性があるのはこのためです。

PS: 実際、BOM は、HTML の charset 属性と XML のエンコーディング属性として理解でき、これらは識別子として機能します。

#解決策:

PHP で BOM を出力するにはどうすればよいですか?

答えは、すべてのコンテンツが出力される前に出力することです:

print(chr(0xEF).chr(0xBB).chr(0xBF));

もちろん、ファイルを生成している場合は、次の 2 つが存在する可能性があります:

fwrite($file, chr(0xEF).chr(0xBB).chr(0xBF));

file_put_contents($file, chr(0xEF).chr(0xBB).chr(0xBF));

推奨チュートリアル:

PHP ビデオ チュートリアル

以上がPHPのメモ帳のコードが文字化けするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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