W3-validator を使用してhtmlドキュメントを検証したところ、次のことがわかりました。
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
と:
<!DOCTYPE HTML>
Line 4, Column 72: Using windows-1252 instead of the declared encoding iso-8859-1.
しかし、私が使用する場合は修正されています:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
何が起こっているのか本当にわかりません。DOCTYPEタグの使い方もわかりません。Webからコピーして貼り付けただけです。
誰かが私を正しい方向に向けて理解してもらえますか?
カップルポイント:
<meta charset="iso-8859-1">
をお試しくださいとはいえ、HTMLバリデーターはこの時代ではそれほど大きな目的を果たしていません。
また、なぜ特定の文字セットを指定する必要があるのですか?
[〜#〜]編集[〜#〜]:
悪いことに、どうやらHTML4のデフォルトはiso = 8869-1でした。つまり、HTML5のデフォルトの文字セットはutf-8です。
HTML5 doctypeの詳細については、John Resigの this post を参照してください。
DOCTYPEを変更しても警告はオフになります。実際には何も修正されていません。
iso-8859-1
とwindows-1252
は非常に似たエンコーディングです。これらは、0x80から0x9Fまでの32バイト値に関連付けられている文字のみが異なります。iso-8859-1
では制御文字にマップされ、windows-1252
ではユーロ記号などのいくつかの便利な文字にマップされます。
制御文字はHTMLでは役に立たないため、Web作成者は誤ってiso-8859-1
を宣言しているのに、windows-1252
を使用しているかのように32個の値の1つ以上を使用しているため、宣言されているiso-8859-1
文字セットをブラウザが認識すると、自動的にwindows-1252
に変更されます。
バリデーターは、これが起こることを単に警告しています。 32バイト値のいずれも使用していない場合は、警告を無視できます。これはエラーではありません。そうであり、iso-8859-1
の解釈ではなく、windows-1252
のバイト値の解釈を本当に望んでいる場合は、何か間違っています。
繰り返しになりますが、この切り替えはどのDOCTYPEのブラウザーでも発生します。HTML5バリデーターは、HTML4バリデーターよりも、それが何を伝えているかについてより役立つというだけです。
「宣言されたエンコーディングiso-8859-1の代わりにwindows-1252を使用します。」これは、ファイルが作成時にエンコーディングウィンドウ1252(別名Western Windows 1252またはcp1252)で保存され、ファイルのエンコーディングではない場合、charset宣言で「このファイルをiso-8859-1で読み取ります」と表示されます。
そのため、メタ文字セットが存在します。これは、送信/読み取り/使用しているファイルのエンコーディングを宣言するために存在するため、たとえばブラウザがドキュメントを読み取るときに、ファイルが使用しているエンコーディングを認識しています。
詳細には、この文字セットが宣言されています。
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
ただし、検証しているファイルは、実際にはWindows 1252でエンコードされています。方法どうして?使用しているテキストエディタと、ファイルの保存に使用しているエンコーディングを確認してください。エンコードを変更するようにエディターを構成できる場合は、使用するものを選択します。
使用する
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
または
<meta charset="iso-8859-1">
どちらもHTML5に有効です。 <meta charset = "utf-8"> vs <meta http-equiv = "Content-Type"> を参照してください
以下に従ってください:
ISO 8859-15ええ-15で動作します。私はこの答えが新しく、質問が古いことを知っていますが、アイデアは、私のような検索エンジンから来る将来のユーザーが正しい答えを得るということです
これは古い質問ですが、更新された回答を提供する方が良いと思いました。たぶん他の人が気づいていないことに気づいたかもしれません(同じ問題が発生したため、自分で解決する前にこの投稿を見つけました)。
W3Cバリデーターは、バリデーターが使用するエンコーディングのオプションを提供します。ドキュメントでエンコーディングを指定したので、バリデーターが実行されると、情報の上部ブロックに「エンコーディング:iso-8859-1」が表示されます。その右側にプルダウンメニューがあります。選択を「(自動検出)」から「iso-8859-1(西ヨーロッパ言語)」に変更します。バリデーターは独自に選択する代わりにiso-8859-1を使用するため、エラーは発生しません。
バリデーターに多くのストックを配置しないでください。バリデーターを作動させるInternet Explorerの回避策(特にcss)は通常、多すぎます。ページがすべてのブラウザーで機能し、クライアントが満足している場合、一部のバリデーターの発言が問題になりますか?
Html5 doctypeを指定する場合は、メタ文字セット属性と一致している必要があります。あなたのページでこれを試してください:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
</body>
</html>