本文共 948 字,大约阅读时间需要 3 分钟。
JSP页面中文乱码问题:
在jsp页面中输出中文时乱码,是因为字符编码不正确,jsp页面中需要两个在两个地方设置:
*<% @ page language=”java” import=”java.util.” pageEncoding=”utf-8”%> <% @ page contentType=”text/html”;charset=”utf-8”%>**pageEncoding:JSP本地保存的字符编码格式。
contentType的charset:服务器发送网页给客服端所使用的字符编码。从第一次访问JSP页面开始到页面发送到客服端经过三次编码转换:
(1)根据pageEncoding的设定字符编码读取Servlet,结果生成Servlet
的编码是统一的utf-8,如果设定错了,就会出现中文乱码。 (2)由JAVAC编译指令将java源码编译成java字节码,不论jsp设定的是什么编码方案,经过这个阶段后的结果都是按utf-8编码的。JAVAC用utf-8编码读取java源码编译成utf-8的字节码,这是jvm对常数字符串在二进制码内表达的规范。 (3)Tomcat载入和执行字节码,根据contentType的charset设定的编码方案向客服端浏览器输出结果。2.表单提交乱码问题:
在jsp页面中提交表单是(用post或者get方法),使用request.getParameter方法获取表单控件值时出现乱码。出现这种原因是因为在tomcat中处理参数时,采用默认字符集ISO-8859-1,而该字符集不包含中文,所以出现乱码。在tomcat中由于对post方法和get方法提交数据处理方式不同,因此解决方案也不相同。
(1)get方法提交表单:
在tomcat的home主目录中对conf目录下的servlet.xml中进行配置。将Connector组件部分添加一个属性:URLEncoding=”GBK”。修改后重启服务器。 (2)post方法提交表单: 通过编写过滤器的方法解决,过滤器在用户提交的数据被处理之前被调用,可以在这里改变请求参数的编码方式。只要在过滤器中设置一个命令: request.setCharacterEncoding(“gbk”)。转载地址:http://lykni.baihongyu.com/