我目前有2个不同的jsp页面,两个页面都调用Java应用程序。当前,只有其中一种字符编码有效。

页面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上的某些页面,但是到目前为止,对我的其中一个页面有效的唯一答案是

request.setCharacterEncoding("UTF-8")


但这仅适用于B页

最佳答案

我能够使用以下方法修复它:

JSONObject data = new JSONObject(new String(request.getParameter("answerdata").getBytes(), "UTF-8"));

10-08 18:45