UTF8 でエンコードされた Web ページにファイルが含まれている場合の、ページの前の空白行の解決方法

UTF8 でエンコードされた Web ページにファイルが含まれている場合の、ページの前の空白行の解決方法
<br />このページはUTF8エンコードを使用しており、ヘッダーとフッターはテンプレートインクルードファイル方式を使用しています。その結果、ヘッダーとフッターに理由もなく10px程度の余分な空白行があり、そこには何も書かれていません。
理由は、すべてのファイルが utf8 でエンコードされているためです。ファイルがインクルードされると、最終的なバイナリ ストリームには複数の UTF8 BOM タグが含まれます。IE は、複数の UTF8 BOM タグを含むページを正常に解析できず、実際に表示される改行に直接置き換えてしまい、空白行になります。Firefox ではこの問題は発生しません。
したがって、テンプレートが複数の utf8 ファイルを含めるためにインクルード方式を使用し、UltraEdit を使用して保存する必要がある場合は、[名前を付けて保存] 機能で BOM 形式なしの utf8 を選択します。
さらに、中国語のページで、HTML のヘッド タグ内の <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> の前にタイトル タグを配置すると、ページは空白になります。
したがって、utf8ページは標準の順序を使用する必要があります
<meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ />
<meta http-equiv=”コンテンツ言語” コンテンツ=”zh-CN” />
<meta name=”ロボット” content=”インデックス、フォロー” />
<meta name=”キーワード” content=”" />
<meta name=”説明” content=”” />
<meta name=”評価” content=”一般” />
<meta name=”著者” コンテンツ=”” />
<meta name=”著作権” content=”" />
<meta name=”ジェネレータ” content=”” />
<タイトル></タイトル>
BOM ヘッダー: \xEF\xBB\xBF。PHP4 および 5 では BOM が無視されるため、解析前に直接出力されます。この問題については、w3.org 標準の FAQ に特別な説明があります。
http://www.w3.org/International/questions/qa-utf8-bom
詳細は以下の通りです。
UCS エンコーディングには、「ZERO WIDTH NO-BREAK SPACE」という文字があり、そのエンコーディングは FEFF です。 FFFE は UCS には存在しない文字なので、実際の送信では表示されません。 UCS 仕様では、バイト ストリームを送信する前に「ZERO WIDTH NO-BREAK SPACE」文字を送信することを推奨しています。このように、受信側が FEFF を受信した場合、バイト ストリームはビッグ エンディアンであることを意味し、FFFE を受信した場合、バイト ストリームはリトルエンディアンであることを意味します。そのため、「ZERO WIDTH NO-BREAK SPACE」という文字は BOM とも呼ばれます。
UTF-8 ではバイト順を示すために BOM は必要ありませんが、エンコードを示すために BOM を使用できます。文字「ZERO WIDTH NO-BREAK SPACE」の UTF-8 エンコードは EF BB BF です。したがって、受信側が EF BB BF で始まるバイト ストリームを受信すると、それが UTF-8 でエンコードされていることがわかります。
Windows は、テキスト ファイルのエンコードをマークするために BOM を使用するオペレーティング システムです。WindowsXP Professional、既定の文字セット: 中国語
1) メモ帳: BOM のない UTF-8 でエンコードされたファイルを自動的に識別できますが、ファイルを保存するときに BOM を追加するかどうかを制御することはできません。ファイルを保存すると、BOM が一律に追加されます。
2) Editplus: BOM のない UTF-8 でエンコードされたファイルは自動的に認識できません。ファイルを保存するときに UTF-8 形式を選択すると、ファイル ヘッダーに BOM ヘッダーが書き込まれません。
3) UltraEdit: 最も強力な文字エンコード機能を備えています。BOM の有無にかかわらず UTF-8 ファイルを自動的に識別できます (設定可能)。保存時に、設定を通じて BOM を追加するかどうかを選択できます。
(新しく作成したファイルを保存するときは、utf-8 no bom 形式で保存することを選択する必要があることに注意してください)
その後、メモ帳も UTF-8 BOM をより適切にサポートしていることがわかったので、皆さんにもメモ帳の使用をお勧めします。

<<:  ウェブページのメモリ使用量とCPU使用量を削減する方法

>>:  ソースコード分析からTomcatがサーブレットの初期化を呼び出す方法の詳細な説明

推薦する

原因不明のMySqlサービス消失の解決策

原因不明のMySqlサービス消失の解決策先ほど、MySQL-Front が突然 MySql を開けな...

Navicat を MySQL に接続するときに発生する 2059 エラーの解決方法

最近、Djangoを学習しているときにデータベースを使用する必要があったため、MySQLで使用するた...

MySQL データをエクスポートする際の secure-file-priv 問題の解決方法

エラー 1290 (HY000) : MySQL サーバーは –secure-file-priv オ...

ネイティブ js はカスタム スクロール バー コンポーネントを実装します

この記事の例では、カスタムスクロールバーコンポーネントを実装するためのjsの具体的なコードを参考まで...

クロスオリジン画像リソース権限(CORS 対応画像)

HTML 仕様書では、画像の crossorigin 属性が導入されています。適切なヘッダー情報 ...

Tomcat 経由で JMX 監視を有効にする方法

シミュレーション環境を構築する:オペレーティングシステム: centos7メモリ: 1G 1.8.0...

mysql data_dirの変更によって発生するエラー問題を解決する

今日は、新しく購入した Alibaba Cloud ECS 環境 (Ubuntu 16.04 LTS...

Vueはページング機能を実装する

この記事の例では、ページング機能を実装するためのVueの具体的なコードを参考までに共有しています。具...

HTML 固定タイトル列、タイトル ヘッダー テーブル固有の実装コード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

JQueryセレクターの詳細な説明

目次基本的なセレクター:レベルセレクター:属性セレクター:フィルターセレクター:フォーム属性セレクタ...

マウスが画像のハイパーリンク上を通過するときに画像のサイズ(幅、高さ)を変更する CSS

マウスが画像の上を通過したときに画像のハイパーリンクを変更する方法:コードをコピーコードは次のとおり...

CSS スキル コレクション - 古典の中の古典

リンク上の点線のボックスを削除しますコードをコピーコードは次のとおりです。 a:アクティブ、a:フォ...

Dockerプライベートライブラリの実装

プライベート Docker レジストリのインストールとデプロイは、Docker テクノロジーを導入、...

CocosCreator 学習モジュールスクリプト

Cocos Creator モジュラースクリプトCocos Creator を使用すると、コードを複...