乱码的相关问题

xiaoxiao2022-06-16  47

乱码一个很令人头痛的问题。这里记下一些经验,好的习惯可以帮助你不操心这个问题: 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,且到了现在这个版本也没改。以后有关乱码的问题,在这个帖子里集中更新,方便查阅。
转载请注明原文地址: https://www.6miu.com/read-4940841.html

最新回复(0)