Tomcat的中文乱码的经典解决方案 tomcat乱码解决
引言:
近期在做我们学校(华中科技大学)的注册中心的信息速递系统中又遇到了久违中文乱码的问题。由于注册中心的HUB系统需要团队开发完成,这导致中文 乱码问题尤为突出。万般无奈之下,硬下头皮寻根究底的找出问题的真正原因。皇天不负有心人,在查阅了N多资料和做了无数次试验之后,终于找到了个人认为较 为简单和经典的解决方案。
适用环境:
采用Tomcat 4.x或Tomcat 5.x,应用中出现中文乱码现象,且找不到统一的解决方案。
主要现象:
在应用中采用GET方式或POST方式时会出现中文乱码现象,而且针对这两种方式不能使用唯一的解决方案。一般您可能会使用以下的几种方案:
A.request.setCharacterEncoding(”gb2312″);
B.type = new String(type.getBytes(”ISO8859-1″), “GB2312″);
C.在Tomcat的配置文件Server.xml中的Connector标签中加入“URIEncoding=UTF-8”属性;
D.confweb.xml 指定多个Encoding参数;
E.编写一个filter,处理Post提交的编码问题;
但有时候您可能会发现,这样做会让问题更糟糕。
问题分析:
要解决中文乱码的问题,首先要了解Tomcat在背后的处理机制,在查阅了许多资料以及许多前辈们写的文章并做了无数次试验之后,我找到了导致Tomcat中出现中文乱码的主要原因,即Tomcat对GET和POST两种方式的处理方法:在Tomcat 4.x时,采用的是GET和POST两种方式使用相同的字符集,也就是UTF-8。但在Tomcat 5.x下,GET和POST方式采用了不同的字符集。
解决方案:
首先我想申明,我所给出的只是解决方案的一种,并不代表我给出的方案能解决大家所遇到的所有问题,但是有一点是肯定的,大家在同一个系统中必须使用相同的解决方案,如果可以最好统一您应用中各个组件包括数据库、JDK、WEB服务器等等的字符编码方案。
而我所采用的是下面的这种方案(只针对Tomcat):
Tomcat 4.x
1.页面编码采用“charset=gb2312”;
2.接收参数使用“request.setCharacterEncoding(”gb2312″);”;
3.如果需要在转换编码,如“type = new String(type.getBytes(”ISO8859-1″), “GB2312″);”;
Tomcat 5.x
1.在配置文件Server.xml的Connector标签中加入“useBodyEncodingForURI=”true””,这个属性主要 是让Tomcat 5.x在GET和POST方式使用相同的字符集。如果这样做仍不能解决问题,您可以尝试再加入另一个属性“URIEncoding=UTF-8”;
2.其他处理同Tomcat 4.x
以上方法可做参考,如果您有其他好的方法或觉得本文中有任何问题或遗漏欢迎批评斧正。
更多阅读
commonfileUpload接收文件以外的参数和中文乱码的问题 jsp接收参数乱码
关于common fileUpload 接收非文件的参数和中文乱码的问题最近的项目中要用到commonfileUpload 在接收参数时出现了中文乱码,在这里我记录一下,以供后来的人可以少走这个弯路。由于在网上找到的文章好多都是转载的,所以解决这个问题
斯卡布罗集市的经典中文歌词 斯卡布罗集市图片
在网上偶然发现了英文经典歌曲《斯卡布罗集市》的经典中文歌词,和大家分享一下!经典翻译的歌词:问尔所之,是否如适。Are you going to scarborough fair?蕙兰芫荽,郁郁香芷。Parselysagerosemaryandthyme.彼方淑女,凭君寄辞。Remembermeto
网吧局域网组建方案 中小型网吧的组建解决方案(1)
创业起步 中小型网吧的组建解决方案(1) 自1995年在北京白石桥出现第一家网络咖啡店,经过近九年发展各类网吧如雨后春笋般地覆盖了足以维持其生存的每个角落。尽管大家对网吧褒贬不一,但不可否认的是它对推动广大民众对互联网的
史蒂夫.乔布斯 《史蒂夫•乔布斯管理日志》之7月8日找到一流的解决方案
当你开始着手解决一个问题并认为它非常简单的时候,其实你并没有真正了解到这个问题有多么复杂。等你真正开始研究这个问题的时候,你就会发现,它其实非常复杂,你会提出很多解决方案,但这些解决方案往往只能在短时间内奏效。真正了不起的
绿盟徐晓阳:提供差异化的安全解决方案
中国IDC圈12月10日报道:中国IDC圈特别在第三届中国IDC产业大典召开前策划了"IDC产业升级与行业融合发展行业高层调查"专题活动,通过对"IDC行业"、"解决方案商"、"视频网站"、"SNS社区"、"网络游戏"5大类进行高层调查、采访并出报告的