最近我正在做一个新项目,UTF-8
这是必须的。我不知道我为什么要面对这个,但这对我来说真的很奇怪。我真的尝试了我所知道的一切,但问题仍然存在。
我正在向我的 servlet 发送一个 JSON 字符串,这是 servlet 部分:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
if (action.equals("startProcess")) {
final String data = request.getParameter("mainData");
URLDecoder.decode(data, "UTF-8");
System.out.println("DATA \n" + URLDecoder.decode(data, "UTF-8"));
JSONObject jsonObj = new JSONObject();
try {
JSONArray jsonArr = new JSONArray(URLDecoder.decode(data, "UTF-8"));
jsonObj.put("data", jsonArr);
JSONArray array = jsonObj.getJSONArray("data");
System.out.println("insertDtls \n" + jsonObj.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
System.out.println("insertDtls \n" + jsonObj.toString());
回报:
这个结果:DATA
[{"department":"1"},{"stampType":"кÑÑÐ³Ð»Ð°Ñ Ð¿ÐµÑаÑÑ"},{"headCompany":"да"},{"stampReason":"1"},{"textToPrint":"asd"},{"comments":"da"},{"other":"дÑÑгой"}]
我真的不知道在这里做什么。我确定我错过了一些非常小的东西,但我无法发现它。是否有可能以某种方式对这个字符串进行双重编码?