URL中包含中文的编码问题

moble_xie 2017-07-09 12:07:15
https://zh.wikipedia.org/wiki/%E6%B1%89%E8%AF%AD utf-8
https://zh.wikipedia.org/wiki/%BA%BA%D3%EF gbk
在维基百科中使用上面两种URL都可以访问到同一词条”汉语“
但是,在访问我自己的Tomcat:
http://localhost:8080/Hello/homepage/%E6%B1%89%E8%AF%AD
http://localhost:8080/Hello/homepage/%BA%BA%D3%EF
在后台可以拿到通过UTF-8编码的参数,不能拿到通过GBK方法拿到的参数,请大家指教,我怎么才能拿到通过GBK编码的参数。
...全文
700 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
moble_xie 2017-07-11
  • 打赏
  • 举报
回复
我整理了篇文章,大家看看,希望对大家有帮助 http://blog.csdn.net/lovexieyuan520/article/details/74999665
moble_xie 2017-07-09
  • 打赏
  • 举报
回复
大家都说的对,不是我的问题,也不是大家的问题,是Tomcat的问题,因为我用的是Tomcat9,Tomcat7包括(Tomcat7)之前的版本默认是iso-8859-1,tomcat 7之后的版本用的是UTF-8编码,截图为证:
Tomcat7:

Tomcat8:

结贴,平均散分。
moble_xie 2017-07-09
  • 打赏
  • 举报
回复
引用 3 楼 pany1209 的回复:

%BA%BA%D3%EF从链接得到。。。。
URLDecoder.decode("%BA%BA%D3%EF", "gbk")
这个肯定可以啊,我就是用URLEncoder.encode得到的编码,你又反编码
李德胜1995 2017-07-09
  • 打赏
  • 举报
回复

%BA%BA%D3%EF从链接得到。。。。
URLDecoder.decode("%BA%BA%D3%EF", "gbk")
JavaTree2017 2017-07-09
  • 打赏
  • 举报
回复
tomcat的编码是iso8859-1,而网页用utf-8或者gbk都要经过iso8859-1的编码因为经过了tomcat,因此将String先由iso8859-1编码转成字节数组,再用GBK转回来即可.
MikeDDT009 2017-07-09
  • 打赏
  • 举报
回复
使用new String(获得的参数字符串.getbytes("ISO-8859-1","GBK"))试试,例 String param = new String(requets.getParameter("参数的key").getBytes("ISO-8859-1","GBK"));

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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