1

私は現在、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でしか機能しませんでした

4

1 に答える 1

0

次を使用して修正できました:

JSONObject data = new JSONObject(new String(request.getParameter("answerdata").getBytes(), "UTF-8"));
于 2013-11-12T12:23:17.293 に答える