ローカルのvalidator.nuインスタンスを使用してサイトを検証していますが、エンコーディングが一致しないと通知され続けます。
内部エンコーディング宣言「iso-8859-1」は、ドキュメントの実際のエンコーディング(「utf-8」)と一致しません。
このエンコーディングを必要とするレガシーDBを使用しているため、エンコーディングをiso-8859-1に強制するためにあらゆることを行いました。
- 力を開始するプロセス
LANG='iso-8859-1'
file.encoding
Tomcatの起動を強制します。これは、どのレポート-Dfile.encoding=iso-8859-1
をチェックするかによって確認されます。Charset.defaultCharset()
ISO-8859-1
- Mavenプロジェクトのリソースは次のようにコピーされ
iso-8859-1
ます:<project.build.sourceEncoding>iso-8859-1</project.build.sourceEncoding>
- JSP
page
ディレクティブはエンコーディングを指定します:<%@page contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
Content-Type
ページヘッドに設定されています:<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
- Tomcat
URIEncoding
セット:<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="iso-8859-1" redirectPort="8443" />
ページが戻ってくる原因となっている他に何を見逃したutf-8
でしょうか?
興味深いことに、©のような文字を正しくレンダリングしており、©がテキスト入力に配置されている場合は、8859-1コードページを使用してDBに正しく保存されます。
更新:サーバーからcURLを使用してページをダウンロードし、検証に成功したw3チェッカーにアップロードすることにしました。唯一の問題は、名前の付け方でしたが、iso-8859-1
これらwindows-1252
2つの文字セットは少し異なると思いましたが、このw3メーリングリストのエントリには別の言い方がありますが、それを調べる必要があります。
これは、私も調べていくvalidator.nuのバグのように見えます。