私は、JSPページのデータのエンコーディングに関するいくつかの問題を抱えています(Spring MVCを使用しています)。 それは次のようになります。jspページのエンコーディングの問題
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%
response.setHeader("Cache-Control", "no-cache"); //HTTP 1.1
response.setHeader("Pragma", "no-cache"); //HTTP 1.0
response.setDateHeader("Expires", 0);
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
.....
<form method="post">
<input type="text" name="txt" value="${Name}" />
<input type="submit" value= OK />
</form>
........
私のアプリは、入力されたテキストボックスからテキストを取り、データベース(HSQLDB)に書き込みます。私が英語の文字を使ってデータを書いているとき、それはすべて正常に動作します!しかし、私は入力テキストボックスにロシアの文字を使用しようとしているときに、間違ったエンコード形式でいくつかの奇妙な文字を書いています。この問題を避けるには?
アイデア?
あなたの 'Cache-Control'エントリは途中で[不完全]です(http://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-ブラウザ/ 2068407#2068407)。 Firefoxなどでは動作しません。また、 'setCharacterEncoding()'の両方の呼び出しは、 'request'の呼び出しには遅すぎるため、既に' response'を暗黙のうちに実行している 'pageEncoding'をすでに設定しているので余計です。 – BalusC
ああ...私はそれについて知らなかった。だから、私は行を削除することができますresponse.setCharacterEncoding( "UTF-8"); request.setCharacterEncoding( "UTF-8"); ?私はこの行をエンコーディングの問題を解決するためにここに入れようとしました。しかし、axtavtが私にSpringエンコーディングフィルタの解決策を与えない限り、すべてはうまくいかなかった。 – Ilnur
リクエストに応じて設定するのは遅すぎます。すでに処理されています(JSPは応答の一部です)。リクエスト処理の前に*発生する必要があり、 'Filter'がジョブを実行するための唯一の正しい場所です。応答については、 'pageEncoding =" UTF-8 "はすでにカバーの下にあるので、重複しているだけです。ところで、応答ヘッダを設定することは、好ましくは、フィルタ内で行われるべきである。これにより、JSPでコードの重複がなくなります。 [JSPでのJavaコードの回避方法](http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files)も参照してください。 – BalusC