Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 ajax和servlet的阿拉伯语数据_Java_Jquery_Jsp_Servlets_Character Encoding - Fatal编程技术网

Java 使用jQuery ajax和servlet的阿拉伯语数据

Java 使用jQuery ajax和servlet的阿拉伯语数据,java,jquery,jsp,servlets,character-encoding,Java,Jquery,Jsp,Servlets,Character Encoding,实际上,我正在尝试使用jQueryAjax将阿拉伯语数据发送到Servlet 但当我试图在页面上重新打印这些数据时,它显示为 ØØØØØØ 这是我的jQuery ajax代码 jQuery.ajax({ url: "/SearchedCoursesGetter", contentType: "application/x-www-form-urlencoded;charset=UTF-8", dataType:

实际上,我正在尝试使用jQueryAjax将阿拉伯语数据发送到Servlet

但当我试图在页面上重新打印这些数据时,它显示为

ØØØØØØ

这是我的jQuery ajax代码

        jQuery.ajax({
            url: "/SearchedCoursesGetter",
            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
            dataType: "text",
            data: {
                'searchKey':  'حديث'
            },
            success: function( data ) {
               document.write(data);
                }));
            }
        });
这是Javaservlet中的代码

    response.setContentType("text/html;charset=UTF-8");
    request.setCharacterEncoding("UTF8");
    PrintWriter out = response.getWriter();
    out.print( request.getParameter("searchKey"));

任何人都可以帮助我吗?

将此添加到JSP的顶部

<%@ page pageEncoding="UTF-8" %>

这将隐式地在JSP本身上执行
response.setHeader(“Content-Type”、“text/html;charset=UTF-8”)
response.setCharacterEncoding(“UTF-8”)
。这样,浏览器将把文档(以及文档上的所有JS)解释为UTF-8

您还需要确保JSP/JS文件保存为UTF-8。根据使用的编辑器,选中编辑器设置和/或另存为选项

请注意,
request.setCharacterEncoding(“UTF-8”)
仅对POST请求有效,对GET请求无效。对于GET请求,您需要在servletcontainer级别对其进行配置。例如,在Tomcat中,您需要将
URIEncoding=“UTF-8”
属性添加到
/conf/server.xml
中的

另见:

所有这些选项都得到了正确处理,但问题仍然没有得到解决:我意识到
jQuery.ajax()
默认为GET。因此,该参数以请求URI而不是请求正文结束。您还需要配置servletcontainer以将URI解释为UTF-8。请参阅更新的答案(顺便说一句,“请参阅”链接中也提到了这一点)。是的,非常感谢,这就是Tomcat,您需要在in/conf/server.xml中添加URIEncoding=“UTF-8”属性。