【问题标题】:AJAX call to Java character encodingAJAX 调用 Java 字符编码
【发布时间】:2013-11-09 17:37:55
【问题描述】:

我目前有 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

【问题讨论】:

    标签: java jquery ajax jsp


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-03-13
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 2013-11-10
      • 1970-01-01
      相关资源
      最近更新 更多