1. PHP で Smarty テンプレートを使用して生成された HTML には、ブラウザーの上部に空白行があります。
2. firedebug を使用して、meta タグと link タグがこの上で正常に動作することを確認します。これは IASP のサービスであり、ソース ファイルを見ると同じですが、おそらくエンコードの問題が発生します。 utf-8 の問題です。
オンラインで検索したところ、utf-8 BOM の問題です。
解決策: UltraEdit32 を使用して、すべてのスマート テンプレート ファイル (インクルード ヘッダー、フッターなどのファイル) を保存します。 ) を BOM なしの utf-8 ファイルとして変換します。
その他の補足説明:
このページは UTF8 を使用しています。 エンコードには、テンプレートを含むドキュメント メソッドが使用されました。 その結果、約 1 行の余分な空白行が発生しました。理由もなく先頭と末尾に10pxがあり、何もありませんでした。
その理由は、ドキュメントがインクルードされると、最終的なバイナリ ストリームに複数の UTF8 BOM タグが含まれるページを正常に解析できず、実際に表示されるキャリッジ リターンに直接置き換えられるためです。この方法では空白行が発生しますが、Firefox ではこの問題は発生しません。
したがって、テンプレートに含まれているメソッドが使用されており、ultraedit を使用して保存する必要がある複数の utf8 ドキュメントが含まれている場合は、utf8 を選択するだけで、BOM 形式なしで保存できます。
さらに、中国語ページが HTML head タグの
したがって、utf8 ページは標準の順序
<meta http-equiv=”Content-type” Content=”text/html; Charset=UTF-8″ /> <meta http-equiv=”Content-language” Content=”zh-CN” /> <meta name=”robots” Content=”index,follow” /> <meta name=”keywords” Content=”" /> <meta name=”desCription” Content=”" /> <meta name=”rating” Content=”general” /> <meta name=”author” Content=”" /> <meta name=”Copyright” Content=”" /> <meta name=”generator” Content=”" /> <title></title>
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 形式で保存することを選択します)
その後、Notepad ++ も utf-8 bom をより適切にサポートしていることがわかりました。皆さんにもそれを使用することをお勧めします。
続き php で生成された html メタタグとリンクタグは body タグ内にあります。 関連記事については、PHP 中国語の Web サイトに注目してください。