10

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タグの使用方法もわかりません。ウェブからコピーして貼り付けただけです。

誰かが私を正しい方向に向けて理解することができますか?

  • なぜこれが起こるのか
  • そして、DOCTYPEタグの使用方法
4

6 に答える 6

19

DOCTYPEを変更することは、単に警告をオフにすることです-それは実際には何も修正していません。

iso-8859-1windows-1252は非常によく似たエンコーディングです。これらは、0x80から0x9Fまでの32バイト値に関連付けられた文字のみが異なります。これらの文字は、iso-8859-1制御文字にwindows-1252マップされ、ユーロ記号などのいくつかの有用な文字にマップされます。

制御文字はHTMLでは役に立たず、Web作成者は誤って宣言しiso-8859-1、それらの32個の値の1つ以上を使用しているかのように使用することがよくあります。windows-1252そのため、ブラウザは、iso-8859-1宣言されている文字セットを確認すると、これを自動的にに変更しますwindows-1252

バリデーターは、これが発生することを警告しているだけです。32バイトの値を使用していない場合は、警告を無視してかまいません。エラーではありません。もしそうなら、そしてあなたが本当にiso-8859-1バイト値の解釈を望んでいて、解釈を望んでいないのならwindows-1252、あなたは何か間違ったことをしているのです。

繰り返しになりますが、この切り替えはどのDOCTYPEのブラウザーでも発生します。これは、HTML4バリデーターよりもHTML5バリデーターの方が情報に役立つということだけです。

于 2012-01-03T07:36:26.327 に答える
7

カップルポイント:

  1. HTML5の検証は、一粒の塩で行う必要があります。仕様はまだ活発に開発中であり、すべてが確定しているわけではありません。
  2. そのメタタグにHTML4構文を使用しています。試す<meta charset="iso-8859-1">

とは言うものの、HTMLバリデーターは、この時代ではそれほど多くの目的を果たしていません。

また、なぜその特定の文字セットを指定する必要があるのですか?

編集

私の悪い、どうやらHTML4のデフォルトはiso=8869-1でした。そうは言っても、HTML5のデフォルトの文字セットはutf-8です。

HTML5 doctypeの詳細については、JohnResigによるこの投稿を参照してください。

于 2012-01-03T05:27:30.387 に答える
3

警告をスローしますLine 4, Column 72: Using windows-1252 instead of the declared encoding iso-8859-1.

これは、ファイルが作成時にエンコーディングウィンドウ1252(別名Western Windows 1252またはcp1252)で保存され、ファイルのエンコーディングではない場合、charset宣言に「iso-8859-1でこのファイルを読んでください」と表示されることを意味します。

そのため、メタ文字セットが存在します。送信/読み取り/使用しているファイルのエンコーディングを宣言するために存在するため、たとえばブラウザがドキュメントを読み取るときに、ファイルが使用しているエンコーディングを認識します。

詳細には、次の文字セットが宣言されています。

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

しかし、検証しているファイルは実際にはWindows 1252でエンコードされています。どのように?なんで?使用しているテキストエディタと、ファイルの保存に使用しているエンコーディングを確認してください。エンコーディングを変更するようにエディタを構成できる場合は、使用するものを選択してください。

HTML5について

使用する

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

また

<meta charset="iso-8859-1">

どちらもHTML5で有効です。<meta charset="utf-8">と<metahttp-equiv="Content-Type">を参照してください。

于 2013-12-04T17:38:03.747 に答える
1

これは古い質問であることがわかりますが、更新された回答を提供する方がよいと思いました。たぶん私は他の人が気付いていないことに気づいたかもしれません(同じ問題に遭遇した後、自分で解決する前にこの投稿を見つけました)。

W3Cバリデーターは、バリデーターが使用するエンコーディングのオプションを提供します。ドキュメントでエンコーディングを指定したので、バリデーターが実行されると、情報の一番上のブロックに「エンコーディング:iso-8859-1」が表示されます。その右側には、プルダウンメニューがあります。選択肢を「(自動的に検出)」から「iso-8859-1(西ヨーロッパ)」に変更します。バリデーターは、独自の選択の代わりにiso-8859-1を使用するため、エラーは発生しません。

于 2013-01-05T12:38:43.150 に答える
1

次の手順を実行します。

ISO8859-15ええ-15そしてそれは動作します。私はこの答えが新しく、質問が古いことを知っていますが、私のような検索エンジンから来る将来のユーザーが正しい答えを得るという考えです

于 2015-04-25T21:33:35.673 に答える
0

バリデーターに在庫を入れすぎないでください。通常、特にcssでは、バリデーターを作動させるInternetExplorerの回避策が多すぎます。ページがすべてのブラウザで機能し、クライアントが満足している場合、バリデーターが何を言っているかは重要ですか?

html5 doctypeを指定している場合は、metacharset属性と一致している必要があります。あなたのページのためにこれを試してみてください:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
</head>

<body>
</body>
</html>
于 2013-04-03T20:48:18.373 に答える