Unicode 署名 BOM の詳細な説明

Unicode 署名 BOM の詳細な説明
Unicode 署名 BOM - BOM とは何ですか?
BOM は Byte Order Mark の略です。 UTF エンコード方式でエンコードを識別するために使用される標準マークです。UTF-16 では元々 FF FE でしたが、UTF-8 では EF BB BF になります。このフラグはオプションであり、UTF8 バイトには順序がないため、バイト ストリームが UTF-8 でエンコードされているかどうかを検出するために使用できます。 Microsoft はこの検出を行いますが、一部のソフトウェアでは検出が行われず、通常の文字として扱われます。

Microsoft は、独自の UTF-8 形式のテキスト ファイルの前に EF BB BF の 3 バイトを追加します。Windows のメモ帳などのプログラムは、この 3 バイトに基づいてテキスト ファイルが ASCII か UTF-8 かを判断します。ただし、これは Microsoft が秘密裏に付けたマークにすぎません。他のプラットフォームの UTF-8 テキスト ファイルには、このようなマークはありません。

Unicode 署名 BOM - UTF-8 の表示方法

つまり、UTF-8 ファイルには BOM がある場合とない場合があり、それらをどのように区別すればよいのでしょうか?
4つの方法。
1. UltraEdit-32でファイルを開き、16 進編集モードに切り替えて、ファイル ヘッダーに EF BB BF があるかどうかを確認します。
2. Dreamweaver で開き、ページのプロパティを確認し、「Unicode 署名 BOM を含める」の前にチェックマークが付いているかどうかを確認します。
3. Windows のメモ帳でファイルを開き、「名前を付けて保存」を選択して、ファイルのデフォルトのエンコードが UTF-8 かANSIかを確認します。ANSI の場合、BOM は含まれません。

Unicode簽名bom Unicode 署名 BOM

4: Emeditorで開き、「名前を付けて保存」を選択し、エンコードの下の「Unicode 署名 (bom) の追加 (G)」がチェックされているかどうかを確認します。図に示すように:

Unicode 署名 BOM - PHP に適用する場合の問題と解決策

Convertz を使用して gb2312 ファイルを UTF-8 ファイルに変換する場合、デフォルト設定では BOM が含まれないことに注意してください。上記の文字化けは、BOM がない場合でも表示されることがあります。ただし、BOM が含まれている場合、PHP のインクルード ファイルでは、PHP バイト ストリームの前に EFBBBF が追加されるため、事前にディスプレイに出力することでプログラム エラーが発生する可能性があるので注意が必要です。 1 つの解決策は、含まれるすべてのファイルを ANSI として保存し、メイン ファイルを UTF-8 にすることです。ファイルから BOM を削除するには、ファイルを UlterEdit で開き、16 進編集モードに切り替えて、最初の 3 バイト (あの EFBBBF) を 20 に置き換えて保存し (保存時に自動バックアップ機能をオフにすることに注意してください)、デフォルトの編集モードに切り替えて最初の 3 つのスペースを削除します。

Unicode 署名 BOM コーディングのヒント

また、エンコードに関するちょっとした知識も学びました。いわゆる Unicode で保存されたファイルは実際には UTF-16 であり、これは Unicode コードと同じものですが、概念的には Unicode と UTF は 2 つの異なるものです。Unicode はメモリエンコード表現スキームであり、UTF は Unicode を保存および転送するためのスキームです。 UTF-16 は、上位バイト先頭 (LE) と上位バイト最後 (BE) の 2 つのタイプに分かれています。公式の UTF エンコーディングには UTF-32 も含まれており、これも LE と BE に分かれています。非 Unicode 公式 UTF エンコーディングには、主に電子メールの送信に使用される UTF-7 も含まれます。 utf-8 のシングルバイト部分は iso-8859-1 と互換性があります。これは主に、一部の古いシステムとライブラリ関数が utf-16 を正しく処理できず、強制的に排除されるためです。英語の文字の場合、ファイル スペースも節約されます (英語以外の文字のスペースを無駄にする代わりに)。 iso-8859-1 を使用する場合、utf8 と iso-8859-1 は両方とも 1 バイトで表されます。他の文字を表す場合、utf-8 は 2 バイトまたは 3 バイトを使用します。

<<:  dockerコンテナにvimをインストールするソリューション

>>:  MySQLでよく使われる文字列関数トップ10の詳細な説明

推薦する

Nginx インストール エラーの解決方法

1. nginx-1.8.1.tar.gzを解凍する2. fastdfs-nginx-module-...

ハイパーリンクの幅と高さを直接設定できない問題の解決策

幅と高さを直接使用することはできません。 display:block; または display:in...

WeChatアプレット仮想リストの応用例

目次序文仮想リストとは何ですか?デモ効果準備スクリーンの高さとボックスの高さ最適化要約する序文人気の...

MySQL の繰り返し読み取りレベルでファントム読み取りを解決できますか?

導入データベース理論についてさらに学んでいくうちに、さまざまな分離レベルによって起こり得る問題につい...

Vueでデータを読み取るためにこれを悪用しないでください

目次序文1. これを使用してデータ内のデータを読み取るプロセス2. Dep.target はいつ存在...

HTMLデータ送信投稿_PowerNode Java Academy

HTTP/1.1 プロトコルで指定されている HTTP リクエスト メソッドには、OPTIONS、...

Dockerイメージ内のファイルを表示する方法

Dockerイメージ内のファイルを表示する方法1. すでに実行中の場合すでに実行中のイメージについて...

Docker で Oracle 11g イメージ構成をプルダウンする際の問題を分析する

1. イメージをプルするdocker pull レジストリ.cn-hangzhou.aliyuncs...

Linux で独自の Nexus プライベート サーバーを構築する方法

この記事では、Linuxサーバー上でDockerを使用してNexusプライベートサーバーを構築する方...

Minio 軽量オブジェクト ストレージ サービスのインストールとブラウザの使用チュートリアル

目次導入インストール1. マウントするフォルダを作成する2. イメージをプルする3. コンテナを作成...

vue-cli を使用してプロジェクトを作成し、webpack でパッケージ化する方法

1. 環境を準備する(Node.jsをダウンロードし、環境変数を設定する) 2. vue-cliをグ...

Linux で MySQL データベースのインポートおよびエクスポート コマンドを実装する方法

1. mysqldump コマンドを使用してデータベースをエクスポートします (このコマンドのパスで...

HTMLは読み取り専用のテキストボックスを実装しており、コンテンツを変更することはできません。

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!--方法 1: onf...

CSS変数を使用して、クールで素晴らしいフローティング効果を実現します。

最近、Grover の Web サイトで楽しいホバー アニメーションを見つけ、自分自身のインスピレー...

Linuxのseqコマンドを使用して数字のシーケンスを生成します(推奨)

Linux の seq コマンドは、数字のリストを非常に高速に生成でき、使いやすく柔軟性に優れてい...