Tomcat JSP Web 开发中的乱码问题小节

原创 2007年10月11日 22:43:00

1. 静态页面的乱码问题
    文件的编码和浏览器要显示的编码不一致。
    1) 检查文件原始的编码, 可以用记事本打开, 然后选择另存为来看;
    2) 给当前页面加入一个指令来建议浏览器用指定的编码来显示文件字符内容.
    <meta http-equiv="content-type" content="text/html; charset=GBK">
    3) 如果系统是英文XP,没装东亚字符集支持, 也会显示乱码.

2. JSP 页面的乱码问题
    1) page 指令有个 pageEncoding="GBK" 这个会指定当前页面保存的编码, 如果写成ISO8859-1就不能保存汉字;
    2) page 指令的 contentType="text/html; charset=ISO8859-1" 也会像静态页面一样让浏览器来优先选择一种编码.
    如果JSP乱码的话,一般就显示成?,而且不管你给浏览器选什么样的编码,它都不能正确显示
3. 表单提交的乱码问题(Tomcat 特有)
    1). POST 的乱码
        a. 首先浏览器提交表单的编码是根据表单所在页面来决定的, 而不是根据提交后的 JSP 页面的编码来决定的. 把所有的页面的编码都设置成一样的,例如 GBK.

        b. 处理方式就是在获取参数之前设置编码:
        request.setCharacterEncoding("GBK");

        c. 可以用过滤器的方式来解决, Tomcat 已经带了一个现成的:
        apache-tomcat-5.5.23/webapps/jsp-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
        web.xml
            <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>GBK</param-value>
        </init-param>
    </filter>

        <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    2) GET 方式的乱码
    用 setCharacterEncoding() 不能解决. TOMCAT 的一个BUG, GET 方式传送的表单参数总是用的 ISO8859-1 编码. 我们要把它转成 GBK 方式.
    String username = request.getParameter("username");
System.out.println(username);
// 转码, 先取得原始的二进制字节数组
byte[] data = username.getBytes("ISO8859-1");
// 根据新的字符集再构造新的字符串
username = new String(data, "GBK");

小结:
所有的页面(除了最后的 GET 的乱码问题)都用统一的编码(GBK或者UTF-8), 就不会出现乱码问题.

4. 用过滤器来一次编码彻底解决表单参数的乱码问题

Tomcat 5/6 GBK 编码下完美解决中文表单问题的过滤器

 

Tomcat部署jsp,出现乱码问题

一、Java中文问题的由来  Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本...
  • shanzhizi
  • shanzhizi
  • 2014年08月12日 22:32
  • 5732

IDEA——IDEA使用Tomcat服务器出现乱码问题

Idea结合Tomcat,访问JSP页面使用response输出,出现了乱码!!!
  • u010648555
  • u010648555
  • 2017年03月22日 16:58
  • 3550

JavaWeb之不同Tomcat版本对get、post请求,中文乱码问题

Myeclipse安装时的前期工作空间的编码准备,就不说了 Tomcat8 Tomcat8 public class dd extends HttpServlet { private stati...
  • u013497151
  • u013497151
  • 2015年05月15日 19:52
  • 1975

Tomcat JSP Web 开发中的乱码问题小结

1. 静态页面的乱码问题      文件的编码和浏览器要显示的编码不一致。      1)  检查文件原始的编码,  可以用记事本打开,  然后选择另存为来看;      2)  给当前页...
  • liuyuwen11
  • liuyuwen11
  • 2012年10月12日 15:32
  • 179

解决Java Web开发中Jsp存储读取MySQL数据中文乱码的问题

MySQL虽说好用,但很容易出现中文乱码的问题,以下列出Java Web开发中常见的几种中文乱码问题: 1、JSP页面显示问题 2、存入MySQL数据中文乱码 3、读取MySQL数据...
  • hupoling
  • hupoling
  • 2015年05月15日 16:18
  • 349

解决Java Web开发中Jsp存储读取MySQL数据中文乱码的问题

MySQL虽说好用,但很容易出现中文乱码的问题,以下列出Java Web开发中常见的几种中文乱码问题: 1、JSP页面显示问题 2、存入MySQL数据中文乱码 3、读取MySQL数据...
  • miniapp
  • miniapp
  • 2011年10月27日 10:57
  • 4797

彻底解决 Tomcat 5 下文字乱码问题 - JSP日志 - ※一路风尘※

  • 2010年01月08日 10:57
  • 117KB
  • 下载

Web项目 Jsp+Tomcat+Mysql乱码解决终极篇

Web项目 Jsp+Tomcat+Mysql乱码解决终极篇 写在之前:    编码出现错误了在web开发的情况下是常常出现的问题。特别是接触了Jsp以来,所学的一切东西,Tomcat、Mysql...
  • yzzst
  • yzzst
  • 2013年07月09日 11:24
  • 906

Eclipse,tomcat及jsp-java编码的设定解决的中文乱码问题

一.Eclipse下编码的设定(在myeclipse下设定方法类似) 1、window -> Preferences -> general -> Workspace -> Text file enc...
  • qq_38860551
  • qq_38860551
  • 2017年11月20日 11:04
  • 62

Eclipse,tomcat及jsp页面编码的设定解决的中文乱码问题

一.Eclipse下编码的设定(在myeclipse下设定方法类似) 1、window -> Preferences -> general -> Workspace -> Text file e...
  • zndxlxm
  • zndxlxm
  • 2012年08月21日 11:31
  • 11202
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Tomcat JSP Web 开发中的乱码问题小节
举报原因:
原因补充:

(最多只允许输入30个字)