2012-01-22 8 views
0

eclipseのHTMLページにinbuiltテンプレートを使用すると、xhtml doctypeの前に次のコードが追加されます。<?xml version="1.0" encoding="ISO-8859-1" ?>このコードはhtmlページに影響しますか?XHTML doctype in eclipse

+1

IE6にのみ影響しますが、それはそれ自体の問題です。 – BoltClock

答えて

1

いいえ、あなたのhtmlはまだ有効であり、すべてのブラウザで読むことができます。 (ただし、IE9より下のすべてのバージョンでIEを奇妙なモードにする - @Rob’s commentを参照してください)

xmlの基本的なタイプであるxhtmlを使用しているため、ブラウザにはある種のエンコードが必要です。

See w3c:

歴史的に、HTML文書の文字エンコーディングは、HTTP Content-Typeヘッダのcharsetパラメータを介してウェブサーバによって指定 、又は文書自体にmeta素子を介してのいずれかであります。 のXML文書では、文書の文字エンコーディングは、XML宣言の (例:<?xml version="1.0" encoding="EUC-JP"?>)で指定されています。 特定の文字エンコーディングで移植可能なドキュメントを表示するには、 Webサーバーで正しいヘッダーが提供されるようにすることをお勧めします。これが不可能な場合は、 文書の文字エンコードを明示的に設定する場合は、 にXML宣言のエンコード宣言とmeta http-equivステートメント(例:<meta http-equiv="Content-type" content="text/html; charset=EUC-JP" />)の両方を含める必要があります。 XHTML準拠のユーザ エージェントでは、XML宣言 のエンコード宣言の値が優先されます。

これは、UTF-8またはUTF-16以外の文字セットを使用している場合にのみ発生します。デフォルトのUTF8またはUTF016を使用する場合、いくつかの例外があります。 W3C(もう一度)を参照してください。

+1

しかし、IEはXHTMLを処理せず、xml宣言を誤解しているので、IE9より下のすべてのバージョンでIEを不合格モードにします。 – Rob

+1

@Rob:正しいdoctype宣言があると仮定して、IE6以下をquirksモードにします。 IEはIE9まではXHTML形式を処理しませんでしたが、XML宣言の不合格モードのバグはIE7で修正されました。 – BoltClock

1

コンストラクト<?xml version="1.0" encoding="ISO-8859-1" ?>は、doctypeの問題ではなく、XML文書の宣言の有無に関わらず、XHTMLなどのXML文書の先頭で使用されるXML宣言です。 XHTML 1.0 specificationによれば、「すべてのXML文書でXML宣言は必要ではありません。 XHTML文書作成者は、すべての文書でXML宣言を使用することを強く推奨します。このような宣言は、ドキュメントの文字エンコーディングがデフォルトのUTF-8またはUTF-16以外であり、エンコーディングが上位プロトコルによって決定されていない場合に必要です。 "

したがって、XHTMLドキュメントが実際ISO -8859-1がコード化されているため、XML宣言は便利で推奨できます。そうでなければ、それは間違った情報です。

関連する問題