Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jquery TextArea JSON和非法字符-最明显的是_Java_Javascript_Jquery_Json - Fatal编程技术网

Java Jquery TextArea 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",

我有一个textarea,使用$'mytextarea'.val,当我的文本是“£”时,我得到的是一个臭名昭著的黑钻石,上面有一个问号。�, 当我把它打包成一个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。