私は現在、Java アプリケーションへの呼び出しを行う 2 つの異なる jsp ページを持っています。現在、そのうちの 1 つだけで、文字エンコーディングがうまく機能しています。
ページ A は次のことを行います。
$.ajax({
url: _root + myPage,
data: myData,
success: mySuccessHandler,
error: myErrorHandler});
ページ B は次のことを行います。
$.post(_root + page, data, successHandler).error(errorHandler);
このコードを使用している Java アプリケーション内には、2 つの別個の関数がありますが、唯一の違いは、パラメーター名 A が「answerdata」を使用し、B が「data」を使用することです。
request.setCharacterEncoding("UTF-8");
JSONObject data = new JSONObject(URLDecoder.decode(request.getParameter("answerdata"), "UTF-8"));
両方の jsp ページには、フォーム内にカプセル化されたデータがあります。
<form id="answerdata" accept-charset="UTF-8" onsubmit="return false;">
どちらにもこれがあります:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
そして、それが機能しないページ A だけがありますが、これを削除しても効果はありません。
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
私はstackoverflowでいくつかのページを見てきましたが、これまでのところ私のページの1つで機能した唯一の答えは
request.setCharacterEncoding("UTF-8")
しかし、それはページBでしか機能しませんでした