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の詳細な説明

推薦する

Linux のファイル圧縮とパッケージ化の概要

1. 圧縮と包装の概要一般的な圧縮ファイルウィンドウズ .rar .zip .7z Linux .z...

ページを更新せずにフォームを送信するには iframe を使用します

そこで、この問題を解決するために埋め込みフレームワークを導入します。具体的な原則は、フォームがデータ...

MySQLのexecute、executeUpdate、executeQueryの違い

execute、executeUpdate、executeQuery の違い (およびそれらの戻り値...

mysql インストーラ コミュニティ 8.0.12.0 インストール グラフィック チュートリアル

このチュートリアルでは、参考のためにmysqlインストーラコミュニティ8.0.12.0のインストール...

webpackが静的リソースキャッシュを実装する方法

目次導入複数の異なるハッシュを区別するハッシュチャンクハッシュコンテンツハッシュjs キャッシュの実...

CSS で高さが不明な垂直中央揃えを実装する

この記事では主に、高さが不明な垂直方向の中央揃えを CSS で実装する方法を紹介し、皆さんと共有しま...

JavaScript のスプレッド演算子とレスト演算子の違いの詳細な説明

目次レスト演算子とは何ですか? JavaScript 関数では REST 演算子はどのように機能しま...

HTML の META タグの使用に関するヒントの例

HTML メタタグHTML メタタグは、Web ページのコンテンツに関する情報をブラウザや検索エンジ...

JavaScript の setTimeout と setTimeinterval の使用例の説明

どちらの方法も、一定時間後に JavaScript コードを実行するために使用できますが、それぞれに...

Windows Server 2008 のサーバー パフォーマンス監視に関するチュートリアル

次に、ログ管理、ログのアーカイブ、ログのトラブルシューティング、イベントの転送と収集のためのコンピュ...

JavaScript配列の簡単な紹介

目次配列の紹介配列リテラル2次元配列要約する配列の紹介配列- Arrayもオブジェクトですこれは通常...

Dockerはローカルイメージとコンテナの保存場所を設定します

指定したサイズより大きいファイルを検索するには、find コマンドを使用します。 検索 / -typ...

MySQL 数十億のデータのインポート、エクスポート、移行に関するメモ

最近はMySQLのメモをたくさん取っていますが、それは主に会社のOracleが比較的安定していてメン...

MySQL サーバー 5.7.20 のインストールと設定方法のグラフィック チュートリアル

この記事ではMySQL 5.7.20のインストールと設定方法を記録し、皆さんと共有します1. MyS...

Centos7 システムでの .NET Core 2.0 + Nginx + Supervisor 環境の構築

1. Linux .NET Core の紹介Microsoft は常に自社のプラットフォームに対して...