乱码的相关问题

解决乱码问题
乱码一个很令人头痛的问题。这里记下一些经验,好的习惯可以帮助你不操心这个问题:

1别指望用普通的new String(xxx.getBytes("ISO8859-1"),"UTF-8")的转换方式,这样不能集中管理,代码也很丑陋。

2jsp页面,或用作ajax载体的页面片段都要加

<%@ page contentType="text/html; charset=UTF-8"%>


3用eclipse开发,别在editplus里写文本文件再直接将文件引进来,很可能汉字都会成乱码,拷贝粘贴无妨,eclipse可以识别。

4设置eclipse编辑jsp,html等文本文件保存的缺省编码方式为utf-8
具体在window>preferences>MyEclipse enterprise workbrench>files and editors>html(jsp)页面中的encoding,选择ISO10646/Unicode(UTF-8).
如果觉得有问题的时候,在Package那个view里,右键点开某个文件的属性,
也可以查看或者修改该文件格式的text file encoding,都选成utf-8吧

5我用jetty6部署测试的时候,出人意料的没有做过任何转码工作,一切正常

6用tomcat的时候就乱码了,分2步解决,一个是get一个是post
1)server.xml里<connector...加一个属性 URIEncoding="UTF-8"
这样get的可以解决,即
http://a.com/xx.action?para1=汉字
这种形式的,都能正常解析没问题。
2)在webapp的web-inf/web.xml里设置filter

<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf8</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

当然要把tomcat自带的examples里的filters/SerCharacterEncodingFilter的class要拷贝到web-inf/classes路径里去。
这样可以解决post请求里的中文转码问题。

7数据库也要设置相关的编码为utf-8

这样一整套习惯性的流程下来,就基本不用考虑乱码问题了。如果其他应用服务器有类似问题的时候,尽量不要硬编码,而通过配置集中的解决问题,可以方便迁移时的调整。tomcat这个特例真是够贱的,枉为兵器谱排名最常用的java web容器,缺省编码竟然还是iso8859-1,且到了现在这个版本也没改。以后有关乱码的问题,在这个帖子里集中更新,方便查阅。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值