0

Tomcat サーバー (サーブレット) への要求に小さな HTML フォームを使用します。「GET」リクエストを使用すると、実装した「SetCharacterEncodingFilter」が非常にうまく機能し、結果にドイツ語の「ウムラウト」がすべて表示されます。しかし、POST リクエストを使用すると (そして残念ながらこれを行う必要があります)、すべての「ウムラウト」が非常に変に見えます ;-)

HTML 部分は次のようになります。

<form id="form1" name="form1" method="POST" 
accept-charset="uft-8" 
action="http://localhost:8080/foo">
<p>
<label for="textfield"></label>
<textarea name="text" id="text" 
cols="45" rows="5"></textarea>
</p>
</form>

サーブレット部分:

protected void processRequest(HttpServletRequest request, 
HttpServletResponse response)
throws ServletException, IOException, JSONException, Exception {

response.setContentType("text/html;charset=UTF-8");

String querytext = request.getParameter("text");

... 
...

誰でも助けてもらえますか?

前もって感謝します!

4

2 に答える 2

0

GET リクエストの場合、server.xml の tomcat Connector タグに URIEncoding="UTF-8" を設定する必要があります。POST 要求の場合、charset フィルターが機能するはずですが、構成された最初のフィルターである必要があります。参照: http://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q3

于 2015-12-02T08:55:45.930 に答える
0

応答に文字セットを設定しないでください。これは、クライアントが送信するものには影響しません。クライアントに送り返すものにのみ影響します。

代わりに、パラメーターを取得するに、リクエストで文字セットを設定してみてください。

request.setCharacterEncoding("UTF-8") // or ISO-8859-1, you have to check
String querytext = request.getParameter("text");

取得する文字セットは、最初にクライアントに送信された HTTP ヘッダーに依存するため、ブラウザーは通常これを尊重し、POST に同じ文字セットを使用します。

于 2012-10-18T22:01:31.463 に答える