3

ローカルのvalidator.nuインスタンスを使用してサイトを検証していますが、エンコーディングが一致しないと通知され続けます。

内部エンコーディング宣言「iso-8859-1」は、ドキュメントの実際のエンコーディング(「utf-8」)と一致しません。

このエンコーディングを必要とするレガシーDBを使用しているため、エンコーディングをiso-8859-1に強制するためにあらゆることを行いました。

  1. 力を開始するプロセスLANG='iso-8859-1'
  2. file.encodingTomcatの起動を強制します。これは、どのレポート-Dfile.encoding=iso-8859-1をチェックするかによって確認されます。Charset.defaultCharset()ISO-8859-1
  3. Mavenプロジェクトのリソースは次のようにコピーされiso-8859-1ます:<project.build.sourceEncoding>iso-8859-1</project.build.sourceEncoding>
  4. JSPpageディレクティブはエンコーディングを指定します:<%@page contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
  5. Content-Typeページヘッドに設定されています:<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  6. TomcatURIEncodingセット:<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-12522つの文字セットは少し異なると思いましたが、このw3メーリングリストのエントリには別の言い方がありますが、それを調べる必要があります。

これは、私も調べていくvalidator.nuのバグのように見えます。

4

2 に答える 2

1

問題を見つけました!

ドキュメントは問題なく、サーバーは問題なく、バリデーターは実際に問題なく検証します。バリデーターに送信する前にページのエンコードを変更し、誤ったエラーを表示するのはFirefoxプラグインです。

help@lists.whatwg.orgメーリングリストのヘルプと、 Fxhtml5validatorアドオンからFxWeb開発者アドオンに変更してドキュメントを正しく検証することでこの結論に達しました。ローカルバリデーターインスタンスを使用すると、正常に検証されるようになりました。

私は元のFirefoxプラグインでこの問題を抱えています。

于 2013-03-27T01:19:23.787 に答える
0

javax.servlet.Filterフィルタ(web.xmlで宣言されたwithタグ<filter>とタグのインスタンス)を追加してみてください。これにより<filter-mapping>、目的の文字エンコードが設定さServletRequestれ、メソッドにパラメータとしてServletResponse入力されるインスタンスが設定されます。doFilter()

ここここでjavadocを参照してください。

于 2013-03-25T09:47:07.117 に答える