java - Tomcat的字符编码问题

标签 java jsp tomcat jstl tomcat6

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

我的 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端)出来的是:

Gaz Métro

但是在前端显示为:

Gaz Métro

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

最佳答案

执行以下操作

1) HTML代码

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

2) IE浏览器设置 View -- 编码 -- Unicode (UTF-8)

3) Tomcat 服务器 server.xml - 在连接器标签中添加“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 - Tomcat的字符编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11089783/

相关文章:

java - Spring:Tomcat 响应中的 HTTP 状态 406

java - 为什么这继续要求字符串?

java - JVM 如何管理 Java 接口(interface)?

java - 理解示例 12 大 O 表示法中字符串的所有排列 - 破解编码面试

java - 如何运行java servlet?

java - 在 2 个子域之间共享 session 数据

tomcat - jasperserver 请求的资源不可用 HTTP 404

java - NoClassDefFoundError : Tomcat 7 unable to load classes from jar

java - Spring MVC 一个 href 重定向到另一个 JSP

java - Spring MVC : How to pass the form data from jsp to controller