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 テキスト ファイル用のこのようなマークはありません。 つまり、UTF-8 ファイルには BOM がある場合とない場合があり、それらをどのように区別すればよいのでしょうか? 3つの方法。 1. UltraEdit-32 でファイルを開き、16 進編集モードに切り替えて、ファイル ヘッダーに EF BB BF があるかどうかを確認します。 2. Dreamweaver で開き、ページのプロパティを確認し、「Unicode 署名 BOM を含める」の前にチェックマークが付いているかどうかを確認します。 3. Windows のメモ帳でファイルを開き、「名前を付けて保存」を選択して、ファイルのデフォルトのエンコードが UTF-8 か ANSI かを確認します。ANSI の場合は、BOM は含まれません。 Zen Cart テンプレート ファイルで html_header.php を見つけましたが、ファイルに BOM がないことがわかりました。UltraEdit-32 で保存し、BOM を追加してから html_header.php をアップロードしました。すべて正常でした。 Convertz を使用して gb2312 ファイルを UTF-8 ファイルに変換する場合、デフォルト設定では BOM が含まれないことに注意してください。上記の文字化けは、BOM がない場合でも表示されることがあります。ただし、BOM が含まれている場合、PHP のインクルード ファイルでは、PHP バイト ストリームの前に EF BB BF が追加されるため、事前にディスプレイに出力しておくとプログラム エラーの原因になることがあります。 1 つの解決策は、含まれるすべてのファイルを ANSI として保存し、メイン ファイルを UTF-8 にすることです。ファイルから BOM を削除するには、ファイルを UlterEdit で開き、16 進編集モードに切り替えて、最初の 3 バイト (EF BB BF) を 20 に置き換え、ファイルを保存し (保存時に自動バックアップ機能をオフにすることに注意してください)、デフォルトの編集モードに切り替えて最初の 3 つのスペースを削除します。 また、エンコードに関するちょっとした知識も学びました。いわゆる 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 バイトを使用します。 |
<<: Mysql-connector-java ドライバのバージョン問題の概要
>>: Three.js が Facebook Metaverse 3D ダイナミック ロゴ効果を実現
1. 単一列インデックスどの列にインデックスを作成するかを選択することは、パフォーマンス最適化プロ...
プロジェクトでは、何らかの不可逆的な理由により、テーブルに保存されたデータがページの表示要件を満たす...
データシート:列から行へ: max(case when then) を使用max---集計関数は最大...
序文開発プロセスにおいて、変数の定義は非常に頻繁かつ基本的なタスクです。変数の使用シナリオと範囲に応...
1. 2種類のDMAマッピング1.1. 一貫性のあるDMAマッピング主に長期間使用されるエリアをマッ...
最近、たまたまこの小さな要件に遭遇しました。昔、JS を使用してこれを処理したことを覚えていますが、...
目次1. beforeCreateとcreated関数2. beforeMountとmount関数3...
この記事では、例を使用して、MySQL データベースの最適化のためのインデックス実装の原則と使用方法...
序文ファイル システムは、データの保存方法と復元方法を整理する役割を担います。 いずれにせよ、時間の...
目次序文最適化変数の抽出二次包装 el-tag コンポーネント使用要約する序文バックエンドシステムの...
序文まずここで説明させてください。インターネット上では、Alibaba では 500 万のデータを異...
遅いログクエリ機能スロー ログ クエリの主な機能は、設定された時間しきい値を超える SQL ステート...
2 端揃えを実現する div+css レイアウトは、Web ページの組版でよく使用されます。この記事...
MySQL の replace と replace into はどちらも頻繁に使用される関数です。r...
<br />外交部などの中央政府機関、各レベルの地方政府、その他の国家機関や部門が率先し...