详谈JavaWeb中文乱码的几个地方

详谈JavaWeb中文乱码的几个地方

【字符与字节之间的转换是通过查表完成的,将字符转换成字节的过程叫做编码,将字节转换为字符的过程称为解码,如果编码和解码使用的码不一致,就会导致乱码问题!】
1.在浏览器显示的内容乱码
解决:乱码原因是response对象的字符输出流在编码时采用的字符码表和浏览器对接收到的数据进行解码时,采用的码表不一致导致的乱码
我们只需在doGet()或者是doPost()方法里面(第一行)加上
response.setContextType(“text/html;charset=utf-8”);
这样浏览器就不会乱码了
2.请求参数的中文乱码问题
解决:乱码原因是由于上面我们已经设置了浏览器在请求参数时,采用的编码时utf-8,但在解码时采用的是ISO-8859-1,因此会导致乱码问题。
我们要设置编码方式,在HttpServletRequest接口中,提供了一个setCharacterEncoding()方法,该方法用于设置request对象的解码方式,
对于post()方法,request.setCharacterEncoding(“text/html;utf-8”);
对于get()方法,第一种方式修改Tomcat中server.xml中的<Connector…>中加上URIEncoding=“UTF-8”(但是这种方法不建议使用,在后面会学到使用过滤器解决乱码问题,这两种方法目的是一个 不要重复使用,重复使用会乱码!)
3.与数据库交互的时候可能会乱码
解决:在设置数据库的编码格式为UTF-8以后 还要在数据库连接池c3p0或者是DBCP配置里面 连接数据库的后面加上:?useUnicode=true;&characterEncoding=“UTF-8”
告诉数据库以UTF-8的形式保存数据

以上是我总结的javaweb中文乱码问题,希望大神多多补充~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值