首页 > 代码库 > 关于url传参中文乱码问题
关于url传参中文乱码问题
之前都一直很不了解中文编码得问题,之前在做项目中没碰到那么头痛的问题。所以一直没有了解中文乱码的问题。
问题描述:
地址:
http://localhost:8080/sun-government/contest/get_teams_by_type_with_page?typeName=新材料
当在windows
跑 myeclipse的命令台 能正确打印出typeName的参数,而且持久层并没有问题。
当在 linux
跑catalina模式 打印出乱码,持久层也是乱码。
百度了好几个好几个小时,测试上传部署测试上传部署后
问题解决了:
在传入参数时候中文urlencode
在获取参数时编码:
new String(words.getBytes("iso8859-1"), "utf-8")
(好像是直接urldecode也行)
这样获取参数后 在linux打印输出和持久层都没问题,但是在windows下跑就出问题了。
疑问:
网页编码,控制台编码,持久层编码三者究竟关系是怎么样的,三个层之间的传参过程中编码是怎么样的。(这次的解决问题只是通过百度尝试得出解决方案,并不理解)
总结
可靠的 解决url传参中文乱码问题的方案:
- 如上所述 new String(words.getBytes("iso8859-1"), "utf-8") (可能是gbk 可能是utf-8) 不过这还不懂为何是utf-8,对应哪个设置
- 在网页传入后台之前对url进行 urlencode ,后台获取参数时 进行urldecode
( 不过这个并未尝试成功)
关于url传参中文乱码问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。