tomcat中对于get方式请求的乱码问题。

mylzw 2005-09-15 01:14:49
无论使用request.setCharacterEncoding();
还是使用网上盛传的SetCharacterEncodingFilter过滤器
都无法解决get请求的中文参数乱码问题——它们只对post方法提交的表单有作用。

自始至终,我都是通过更改tomcat的配置文件解决问题的,在conf/server.xml中增加URIEncoding="GBK"。

还有人用比较另类的办法,那就是new String(xxx.getBytes("ISO-8859-1"),"gbk")来逆向编码。
这是对tomcat的屈服。~ 为什么要迁就tomcat的ISO-8859-1编码?另外,这种方法如果硬性的写到了代码中,对于以后的部署十分不利。假设部署到了一台URIEncoding="GBK"的tomcat上,那么乱码问题还会出现。

对于post请求,可以通过request.setCharacterEncoding();来设置编码。
对于get请求,为什么tomcat只依赖于server.xml配置中的URIEncoding属性(默认的是ISO-8859-1)?
这样的话,在部署web应用的时候,就只能祈祷对方的tomcat服务器中的URIEncoding已经按我预想的那样设置了。

最好的办法,就是不在get请求中用中文。。。
难道就这么无奈吗?有没有方法能够在程序中设置针对get请求的编码呢?
...全文
1044 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
skycncomp 2005-11-22
  • 打赏
  • 举报
回复
好贴不错
denghan 2005-11-22
  • 打赏
  • 举报
回复
我也遇到楼主同样的困扰,通过更改tomcat的配置文件解决问题的,在conf/server.xml中增加URIEncoding="GBK"。解决get数据中文乱码问题

但这样问题是,例如使用JB2005等软件来调试程序时(JB2005自带的tomcat是4.X),它自动调用你安装的tomcat时,JB2005不会在自动生成的tomcat的server.xml文件(位于%项目路径%\Tomcat\conf)中标明URIEncoding="GBK"
OnlyFor_love 2005-09-19
  • 打赏
  • 举报
回复
楼主的这个帖子基本可以把一般的乱码问题给解决了,挺全的
OnlyFor_love 2005-09-16
  • 打赏
  • 举报
回复
这是因为tomcat对于post和get请求所采取的处理措施是不一样的,对于get请求很大程度上依赖与计算机本身。
mount Windows分区的时候加上utf8参数,应该就没问题了。
这是因为文件系统传给nautilus的文件名是GBK编码的,显示的时候nautilus发现文件名不是UTF-8编码,于是根据你的locale编码将文件名转成UTF-8编码再显示出来,而地址栏显示的是有效的URI,当然不能也作转换,如果你的中文文件名是UTF-8编码的,在地址栏显示也会正常。
在nautilus下有时会看到中文名一样的文件,就是这个原因造成的,这时可能两个文件一个是GBK编码,一个是UTF-8编码,在文件系统上是两个不同的文件,但是在nautilus看起来,文件名却一样。
早点换到zh_CN.UTF-8,问题会小一些。
  • 打赏
  • 举报
回复
看看 帮顶

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧