4

各ページが次の構造を持つ静的な Web サイトを作成しました。

  1. ヘッダー、メニューなどの一般的なもの。
  2. メイン コンテンツ div のページ固有のもの
  3. フッター

このウェブサイトでは、すべての共通コンテンツが各ページに複製されています。保守性を向上させるために、共通のコンテンツが重複しないように、サーバー側インクルード (SSI) を使用するようにページをリファクタリングしました。各ページの構造は現在

  1. ヘッダー、メニューなどの一般的なもののための SSI。
  2. メイン コンテンツ div のページ固有のもの
  3. フッターの SSI

リファクタリングされたサイトでは、何らかの理由でフランス語の文字がページ固有のコンテンツ領域で正しく表示されなくなりましたが、SSI を介して含まれるコンテンツでは問題なく表示されます。

含まれるヘッダーは、文字セットを次のように指定します。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

メイン コンテンツ ページの 1 つをブラウザで開くと、文字エンコーディングが ISO-8859-1 であることがわかります。次の行を含むフォルダーに .htaccess ファイルを追加しようとしました

AddDefaultCharset UTF-8
AddCharset UTF-8 .shtml
AddCharset UTF-8 .html

しかし、それでも、SSI を使用するバージョンのサイトでは、厄介なフランス語のアクセントが正しく表示されません。

4

3 に答える 3

3

ページをUTF-8として提供していますが、これは適切ですが、ページの少なくとも一部は、実際にはUTF-8として保存されていないファイルからドラッグインされています。SSIは生のバイトを投入するだけで、インクルードを再コーディングして、文字セットがインクルードされているファイルと一致するようにすることはありません。

すべてのHTMLを調べて、テキストエディタにファイルを含め、それぞれがUTF-8として保存されていることを確認する必要があります。

Johnが述べたように、すべての非ASCII文字に文字参照を使用することでエンコードの問題を回避できますが、それは非常に苦痛です。

于 2009-02-12T02:46:07.083 に答える
0

私はあなたと同じ問題を抱えていましたが、最終的にそれを修正する解決策を見つけました。

UTF8 は私のサイトに余分な行を作成します

すべてのファイルを BOM なしの UTF-8 として保存します ( http://en.wikipedia.org/wiki/Byte_order_mark )。

于 2011-05-29T22:46:03.540 に答える
0

あなたの HTML ドキュメントは UTF-8 エンコーディングを使用しています。アクセント付きの文字には次の文字コードを試してください: http://www.tony-franks.co.uk/UTF-8.htm

于 2009-02-12T01:46:00.050 に答える