编码问题

本文详细阐述了JavaWeb开发过程中常见的编码问题及解决方案,包括页面、请求、URL解析、数据库连接与本身编码等方面,帮助开发者避免乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不管什么程序只要各个地方的编码一致,字符集选择合适,就不会有什么问题,但是往往是各个部分的编码不一致,导致问题,需要梳理各个可能出现问题的地方,找到不一致的地方来解决。

Java Web开发的编码地方很多,如果有不一致的,很容易出现乱码,梳理一下主要以下几个环节:

页面的编码: 指示生成html页面后的编码方式,让浏览器识别然后render,可以在页面中使用charset来设定。

request的编码: 把数据放到attribute,parameter发送请求的时候使用的编码,可以使用request.seCharacterEncoding来设定,可以写一个Filter来搞。

tomcat的对URL解析的编码: tomcat对url解析的默认的编码为iso-8859,可以通过server.xml中配置

<Connector  URIEncoding="UTF-8" port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000" 
               disableUploadTimeout="true" />

 中的URIEncoding来指定。

数据库连接的编码: 比如使用Unicode编码,可以在连接的url中添加参数useUnicode=true&characterEncoding=utf8

如果在xml中配置可以使用CDATA或者对&进行转义,因为&在xml有特殊的含义。

数据库本身的编码: 存到数据库中使用的编码,建表的时候设定编码。

 

BTW:GB18030字符集,IE有些版本,有bug会导致乱码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值