java – Tomcat的字符编码问题

正在进行奇怪的字符编码.我正在使用JSP(JSTL)和Struts与Tomat 6.

我有我的JSP页面编码:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

问题是当我尝试使用encodeURI传递url时:

<script type="text/javascript">
          $('#mailer_filter').change(function(){
            var val = $(this).val();
            console.log(val);
            console.log(escape(val));
            console.log(encodeURI(val));
            location.href = 'mailList.a?' + encodeURI($(this).val());
          });
        </script>

action(java end)上的参数如下:

Gaz Métro

但是在前端它显示为:

Gaz Métro

这是正确的方法.我能做些什么?

解决方法:

做以下

1)HTML代码

 <meta contentType="text/html; charset="UTF-8"/>

2)IE的浏览器设置
 视图 – 编码 – Unicode(UTF-8)

3)Tomcat服务器
 server.xml – 在Connector标签中添加了“URIEncoding”属性为

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" URIEncoding="UTF-8"/>

catalina.sh/catalina.bat – 添加以下内容

set JAVA_OPTS=--Xms256m -Xmx1024m -Xss268k -server -XX:MaxPermSize=256m -XX:-UseGCOverheadLimit -Djava.awt.headless=true -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8

set CATALINA_OPTS=-Dfile.encoding="UTF-8"

4)MIME类型的响应应该是“application / x-www-form-urlencoded”

上一篇:java – 将JSF标记与JSTL标记混合会产生奇怪的结果


下一篇:栈应用_计算按运算符优先级分布的算式(代码、分析、汇编)