关于java中 get提交方式的乱码问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java中 get提交方式的乱码问题相关的知识,希望对你有一定的参考价值。

这个原因是服务器导致的,服务器比如tomcat接收get方法默认使用的是ISO-8859-1编码,
而浏览器发送时文字编码是和页面编码保持一致的,如果页面是使用utf-8 编码 get方法文字自然是使用utf-8编码,
但接收服务器没有设置的情况下用了ISO-8859-1编码接收,中文自然就成乱码了,
不过由于ISO-8859-1编码是单字节编码所以我们可以使用getBytes("ISO-8859-1"),"utf-8"这样把文字重新转换成utf-8 编码。

第一个发送的文字是utf-8编码 而tomcat接收后用错误的ISO-8859-1编码了,这样getBytes("ISO-8859-1")后会重新得到正确的utf-8编码的字节数组 ,然后用 new
String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8")重新将字节编码成UTF-8编码的文字这样文字就正确了。

如果是tomcat的话 server.xml文件里
<Connector port="80" protocol="HTTP/1.1"
 connectionTimeout="20000"  redirectPort="8443" URIEncoding="UTF-8"/>
后边的URIEncoding就是设置get方法编码的如果没有指定URL接收的编码类型,自动会用ISO-8859-1编码
















以上是关于关于java中 get提交方式的乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

java jsp 中 表单用 get 提交 怎样解决中文乱码问题?

关于sevlet文件处理中的乱码问题以及处理方法

关于java代码提交HTTP POST请求中文乱码的解决方法

java中get请求的中文乱码问题

eclipse中修改tomcat的配置,解决全局性的get提交乱码问题

Java关于中文乱码的解决办法