JSP中文乱码总结

  1. 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”)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值