ホームページ > バックエンド開発 > PHPチュートリアル > [BOM]PHPプログラムにおけるUTF8の謎のエンコード問題の解決策_PHPチュートリアル

[BOM]PHPプログラムにおけるUTF8の謎のエンコード問題の解決策_PHPチュートリアル

WBOY
リリース: 2016-07-13 17:51:00
オリジナル
912 人が閲覧しました

ヒント: UTF-8 エンコーディングを使用するユーザーは、コード ファイルやテンプレート ファイルの編集にメモ帳を使用しないでください。編集には Unicode 署名 (BOM) を削除できるツールを使用してください。 Web サイトが空白で開き、スタイルが失われ、プログラム エラーが報告される場合は、BOM の削除に失敗したツールを使用してテンプレート ファイルまたはソース コード ファイルを変更した可能性があります。

ほぼすべてのテキスト編集ソフトウェアが、UTF-8 でエンコードされたファイルを表示および編集できるようになりました。しかし、残念ながら、それらの多くはパフォーマンスが良くありません。
WINDOWS に付属のメモ帳などのソフトウェアは、UTF-8 でエンコードされたファイルを保存するときに、ファイルの先頭に 3 つの非表示文字 (0xEF 0xBB 0xBF、または BOM) を挿入します。これは、メモ帳などの編集者がファイルが UTF-8 でエンコードされているかどうかを識別できるようにするために使用される隠し文字の文字列です。通常のファイルの場合は問題ありません。しかし、PHP の場合、BOM が問題になります。

PHP は BOM を無視しないため、これらのファイルの読み取り、組み込み、または参照の際、BOM はファイルの先頭テキストの一部として使用されます。組み込み言語の特性上、この文字列が直接実行(表示)されます。その結果、ページの上部パディングを 0 に設定しても、HTML の先頭にこれらの 3 文字があるため、Web ページ全体をブラウザの上部近くに配置することはできません。

最大の問題はこれではない。 COOKIE 送信メカニズムの制限により、ファイルの先頭に BOM がすでに存在するファイルでは、COOKIE を送信できません (COOKIE が送信される前に PHP がファイル ヘッダーを送信しているため)。関数が無効です。 COOKIE および SESSION に依存する関数はすべて無効です。

したがって、テキスト ファイルを編集または変更する場合は、BOM がランダムに追加されないエディタを使用してください。 Linux 上のエディタではこの問題は発生しません。 WINDOWSではメモ帳などのエディタは使用しないでください。推奨されるエディターは、Editplus バージョン 2.12 以降、UltraEdit (「BOM の追加」の関連オプションをキャンセルする必要があります)、「BOM の追加」の関連オプションをキャンセルする必要があります。
BOMが付加されているファイルの場合、キャンセルしたい場合は上記のエディタを使用して一旦保存することができます。 (Editplus は最初に gb として保存し、次に UTF-8 として保存する必要があります。)

Dreamweaver で Unicode 署名 (BOM) を削除するには、メニュー バーで [修正] -> [ページ プロパティ] をクリックするか、Ctrl+J ショートカット キーを直接押します。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478222.html技術記事ヒント: UTF-8 エンコーディングを使用するユーザーは、コード ファイルやテンプレート ファイルの編集にメモ帳を使用しないでください。編集には Unicode 署名 (BOM) を削除できるツールを使用してください。あなたのウェブサイトがヒットしたら...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート