900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > tomcat jsp导入java_[导入]Tomcat JSP Web 开发中的乱码问题小姐

tomcat jsp导入java_[导入]Tomcat JSP Web 开发中的乱码问题小姐

时间:2023-08-01 14:21:39

相关推荐

tomcat jsp导入java_[导入]Tomcat JSP Web 开发中的乱码问题小姐

1. 静态页面的乱码问题

文件的编码和浏览器要显示的编码不一致。

1) 检查文件原始的编码, 可以用记事本打开, 然后选择另存为来看;

2) 给当前页面加入一个指令来建议浏览器用指定的编码来显示文件字符内容.

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

Set Character Encoding

filters.SetCharacterEncodingFilter

encoding

GBK

Set Character Encoding

/*

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. 用过滤器来一次编码彻底解决表单参数的乱码问题

BeanSoft -10-10 18:20 发表评论

文章来源:/beansoft/archive//10/10/151848.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。