ケース 1: Ubuntu と Tomcat 7.x を使用する仮想マシンがあります。特殊文字を含むデータをサーバーに POST すると、問題ありません。サーブレットの前に実行され、エンコードを UTF-8 に設定するフィルターがあります。request.setCharacterEncoding("utf-8");
ケース 2: 同じ仮想マシンに、別の Tomcat 7.x がインストールされています (返信)。Tomcat 7.xにJOSSO 1.8.6をインストールしました。この後、特殊文字を含む POST データを送信しようとすると、サーブレットが正しくデコードされませんrequest.getParameter("reportText");
。
JOSSO には、エンコード フィルターの前に実行されるフィルターがあり、フィルターをrequest.setCharacterEncoding("utf-8")
役に立たなくする要求を使用していると思います。
私が問題を解決しようとしていること:
- Tomcat コネクタ タグ (server.xml) で URIEncoding="utf-8" を設定しました。
- setCharacterEncoding() を使用しました。
- 私は
JAVA_OPTS="$JAVA_OPTS -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8"
tomcat setenv.sh に設定しました - HTTP ヘッダーを確認したところ、正しい (Content-Type=text/plain;charset=utf-8)
- Tomcat フィルターを有効にしました
setCharacterEncodingFilter
POST リクエストはクライアント JSP によって生成されます
<form id="xx" name="xx" onsubmit="return validateAndSubmitForm(this);" action="submitReport.do" method="post" enctype="application/x-www-form-urlencoded; charset: utf-8;"> xxx </form>
上の私の JSP タグ:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
POST ヘッダー: ヘッダー 付きの画像
何か案は?ありがとうございました。