Java Jquery TextArea JSON和非法字符-最明显的是
我有一个textarea,使用$'mytextarea'.val,当我的文本是“£”时,我得到的是一个臭名昭著的黑钻石,上面有一个问号。�, 当我把它打包成一个JSON数据包时,它会被发送到服务器,然后它会这样解释:在服务器端 我正在使用以下代码将其发送到服务器:Java Jquery TextArea JSON和非法字符-最明显的是,java,javascript,jquery,json,Java,Javascript,Jquery,Json,我有一个textarea,使用$'mytextarea'.val,当我的文本是“£”时,我得到的是一个臭名昭著的黑钻石,上面有一个问号。�, 当我把它打包成一个JSON数据包时,它会被发送到服务器,然后它会这样解释:在服务器端 我正在使用以下代码将其发送到服务器: jQuery.ajax({ url: "aurl", contentType: "application/json; charset=utf-8", dataType: "json",
jQuery.ajax({
url: "aurl",
contentType: "application/json; charset=utf-8",
dataType: "json",
async : true,
cache : false,
type: "POST",
processData : false,
data: JSON.stringify(parameterMap)
});
我真的不明白为什么它只是一个符号引起了我的问题,是字符编码吗?是服务器端还是客户端
有什么想法吗?这看起来像是服务器端的编码问题。例如,您可以在servlet之前添加一个过滤器,该过滤器有一个doFilter,如下所示:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
这还将为servlet发送的答案设置正确的编码
您可以在项目中检查的另一个提示是:如果您在代码中定义了一些字符串常量,请在编辑和服务器交付文件时检查文件的编码是否相同 脚本所在的页面是否也编码为UTF-8?是否因为使用JSP而标记为java?使用freemarker呈现页面时标记为java,并将文本发送到servlet。是的,页面也编码为UTF-8。