0

昨日、html ページを「4.01 strict」から html5 にアップグレードしました。
* http://r0k.us/rock/games/CoH/HallsOfHeroes/
文字コードは iso-8859-1 です。http://validator.w3.orgは失敗し、utf-8 が charset として指定されている場合は解析しません。これは明らかに ² などの脚注文字を使用しているためです。これらは、文字セットの上位 128 バイトにあります。私を混乱させているのは、utf-8 の最初の 256 バイト8859-1 であると読み続けていることです。

ページが utf-8 として検証されない理由を知っている人はいますか?

4

2 に答える 2

2

実際には、最初の 128 コード ポイントのみが UTF-8 で ASCII としてエンコードされますが、UTF-8 はASCII ではなく、特に次の 128 コード ポイントが異なります。

ファイルを UTF-8 として提供する場合は、ファイルを UTF-8 として再保存する必要があります。

于 2013-02-17T20:19:33.317 に答える
0

文字 ² ("SUPERSCRIPT TWO") は数値 0xb2 (10 進数の 178) で表されますが、8859-1 と UTF-8 では表現が異なります。

8859-1 では、値が 0xb2 の 1 バイトとして表されます。

UTF-8 では、値が 0xc2、0xb2 の 2 つの連続したバイトとして表されます。エンコーディングの説明については、こちらを参照してください。

(8859-1 は、8 ビット文字を含むファイルの場合は UTF-8 よりもコンパクトですが、255 を超えるものを表すことはできません。UTF-8 は ASCII と互換性があり、7 ビット文字の場合は 8859-1 と互換性があります。ほとんどのテキストであり、100 万を超える異なる文字を表すことができます)。

7 ビット文字のみを含むファイルは、ASCII、8859-1、または UTF-8 として解釈できます。8 ビット文字を含むファイルはできません。翻訳する必要があります。

iconvコマンドがインストールされた Unix ライクなシステムを使用している場合は、次のようになります。

iconv -f iso-8859-1 -t utf-8

適切な翻訳を実行します。

于 2013-02-17T20:23:05.140 に答える