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がサーブレットの初期化を呼び出す方法の詳細な説明

推薦する

Vue ユニットテストに推奨されるプラグインと使用例

目次フレーム最高レベルのエラー報告活発なコミュニティとチーム冗談モカ推奨プラグインVue テストライ...

NavicatでMySQLビッグデータをインポートする際のエラーの解決方法

Navicat がエクスポートしたデータはインポートできません。最後に、MySQLコマンドのインポー...

nginx「504 ゲートウェイタイムアウト」エラーを解決する

ウェブサイトを作成する学生は、アクセス時に一部の nginx サーバーが 504 Gateway T...

Zabbix の psk 暗号化と zabbix_get 値の組み合わせ

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbix...

CentOS 6.4 MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル

Centos6.4 で mysql5.7.18 をインストールするための具体的な手順が全員に共有され...

Zabbix は DingTalk のアラーム機能を画像付きで設定します

実装のアイデア:まず、アラーム情報にはitemidが必要です。これは前提条件です。情報に渡されるパラ...

Linux カーネル デバイス ドライバー Linux カーネル 基本メモの概要

1. Linuxカーネルドライバモジュールの仕組み静的ロードでは、ドライバモジュールをカーネルにコン...

JavaScript と CSS を最適化してウェブサイトのパフォーマンスを向上させる

<br /> 第 1 部と第 2 部では、Web サイトのパフォーマンス、ページ コンテ...

qt.qpa.plugin の問題を解決: Ubuntu 18.04 の Qt で Qt プラットフォーム プラグイン「xcb」をロードできませんでした

問題の説明Qt5.15.0 をインストールした後、テスト ケースを実行するとエラーが表示されます。 ...

MySQL スローログ実践のまとめ

遅いログクエリ機能スロー ログ クエリの主な機能は、設定された時間しきい値を超える SQL ステート...

Dockerコンテナのk8sデプロイメントの実装

環境: (docker、k8s クラスター)、前回 docker で起動した Java プログラムの...

Vue は無限ロードウォーターフォールフローを実装します

この記事では、参考までに、無限ロードウォーターフォールフローを実現するためのVueの具体的なコードを...

Dockerfile を使用して Node.js サービスをデプロイする方法

Dockerfileを初期化するプロジェクトの名前が express であると仮定して、expres...

Mysqlは隣接リスト(隣接リスト)を通じてツリー構造を保存します。

以下の内容では、隣接リストを使用してツリー構造を保存する MYSQL のプロセスとソリューションを紹...

MySQL列挙型のテスト例

プロジェクトを開発しているとき、支払い済み、支払済み、クローズ済み、返金済みなどの注文ステータスなど...