如何在jsp页面上显示通过ajax查询传递的日文字符

时间:2014-07-14 15:14:59

标签: java jquery ajax jsp

我有一个.jsp页面,它向另一个.jsp页面发出ajax请求。 query参数包含日语字符。我通过查看字符正确传递的请求已经确认。但是,另一方未正确接收字符串。

以下是文件:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script>
        $(document).ready(function() {
            url = "ajaxHandler.jsp";
            $.ajax({ 
                type : "GET",
                url : url,
                data: {  parameter : "\u306f" },
                dataType : "html", //expect html to be returned
                success : function(response) {
                    console.log("successful query");
                }
            });
        });
    </script>
</head>
<body>

ajaxHandler.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
    String val = request.getParameter("parameter");
%>
<br>
<%=val %>

当我点击网址&#34; https:... / ajaxHandler.jsp?parameter =%E3%81%AF&#34;时,会显示一个完全不同的字符。

我怀疑页面的字符编码存在问题。我试过&#34; utf-8&#34;现在用&#34; shift-jis&#34; ,但我仍然无法显示字符串。

所以我想知道为什么我们指定字符集以及如何在这里使用它。另外请告诉我如何获得字符串。

PS:&#34; \ u306f&#34;是一个实际的日语字符,它在eclipse中显示,而不是像这里显示的unicode。

1 个答案:

答案 0 :(得分:3)

修改位于tomcat conf 文件夹中的 server.xml 文件。

根据相关连接器指定URIEncoding UTF-8

例如,我正在使用https连接器,因此server.xml中的连接器配置如下所示:

enter image description here

当您更新server.xml时,请重新启动Tomcat。

就是这样。