2012-04-15 11 views
2

WebページをW3C HTMLバリデーターで実行しましたが、このエラーが発生しました。HTML文書の「実際のエンコーディング」を変更するにはどうすればよいですか?

エンコーディングasciiは、使用中の文字 エンコーディングの好ましい名前ではありません。好ましい名前はus-asciiです。 (Charmod C024)✉ 行5、列70:内部エンコーディング宣言utf-8は、 の実際のエンコーディング(us-ascii)と一致しません。

<meta http-equiv="content-type" content="text/html;charset=utf-8"> 

どうやら、私は "実際には" 私は私のメタタグにUTF-8を指定していてもUTF-8を使用していないです。

UTF-8を「実際に」使用するにはどうすればよいですか?それは一体何の意味ですか?

答えて

6

バリデータのHTML5モードでは、エンコード宣言間の不一致がエラーとして処理されます。メッセージでは、「内部符号化宣言」は、タグ(<meta charset=utf-8>など)を指し、「実際の符号化」(誤解を招きやすい)は、HTTPヘッダの符号化宣言を指します。

現在のHTML仕様(HTML5は草稿にすぎません)によれば、不一致はエラーではなく、HTTPヘッダーが勝ちます。

ドキュメントにAscii文字しか含まれていない場合は、実際の問題はありません。 Asciiでエンコードされたデータは、UTF-8でエンコードされています。なぜなら、UTF-8では、任意のAscii文字がAsciiと同じ値で1バイトとして表現されるからです。

サーバー側で使用されるソフトウェアによって、HTTPヘッダーを変更できるかどうか、またどのように変更できるかによって異なります。文字セットをASCII文字で指定した場合、Ascii文字のみを使用し続けることを条件に、検証以外は実際の問題ではありません。しかし、それは幾分奇妙で時代遅れです。そこにあるエンコーディング情報をcharset = utf-8に変更してみてください。実際のエンコーディングは変更する必要はありませんが、後でAscii以外の文字を追加する場合は、オーサリングプログラムで適切なコマンドまたはオプションを選択して、UTF-8エンコードとしてファイルを保存してください。

3

ファイルをメモ帳で開き、save as>UTF-8saveボタンの横)にファイルを開きます。

2

UNIX系のシステムでは、ファイルをあるエンコーディングから別のエンコーディングに変換するのにiconvツールを使用することがあります。 プログラミング言語(例えば、PHP)の範囲からも使用することができます。 適切な関数の名前は同じです。 http://www.php.net/manual/en/function.iconv.php

1

エンコードを指定することが1つです。適切なエンコーディングでドキュメントを保存することは別の方法です。
UTF-8エンコーディングをサポートするエディターで文書を編集します。好ましくはBOMのないUTF-8。 Notepad++は良いスタートになるかもしれません。
も読んでください:UTF-8 all the way through

関連する問題