java get方式中文乱码

Posted

tags:

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

直接在浏览器地址上输入中文,传进后台中文就是??? ,试过很多办法了, 都不行,求助高手!

get方式提交的参数编码,只支持iso8859-1编码。
因此,如果里面有中文。
在后台就需要转换编码,如下
String zhongwen = request.getParameter("zhongwen");
zhongwen = new String(zhongwen.getBytes("iso8859-1"),"GBK");
前提是你页面编码就是GBK,如果是utf-8,那上面那句代码后面就改成utf-8
参考技术A 1.页面显示中文乱码

<%page pageEncoding="utf-8"%>
2.传递中文参数乱码

修改server.xml
<Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000"

redirectPort="8443" URIEncoding="UTF-8"/>
参考技术B 楼上那个回答好搞笑,明明是JSP参数乱码问题,你怎么扯到中文域名去了? 中文域名怎么了? 人家都出中文域名了,难道你输入中文域名还访问不了网站? 中文域名还不是映射到IP地址,和中文参数一点关系没得,你直接在URL上输入中文,转个码就是了、 参考技术C var str = escape("中文");
将得到一些"%20%2"这样的字符串, 后台会认识的.
参考技术D String zhongwen = request.getParameter("zhongwen");
zhongwen = new String(zhongwen.getBytes("iso8859-1"),"GBK");

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

表单采用Get方式提交,解决乱码的方法为:
    方式一:手动解码
        param = new String(param.getBytes("iso8859-1"), "utf-8");
        此方式,依赖于服务器
    方式二:配置tomcat
        修改tomcat的server.xml:    URIEncoding="utf-8"
        此方式,依赖于服务器
    方式三:url编码(不依赖Tomcat的配置,推荐):
        浏览器中两次URL编码。
              var param = "中";
              param = encodeURI(param);
              alert(param);
              param = encodeURI(param);
              alert(param);
     讲param编码两次之后传递到后台
        服务器中自己再做一次URL解码。
             参数传递到服务器时候,服务器会对参数自动的做一次解码,我们只需要自己手动解码一次
             java.net.URLDecoder.decode(param, "utf-8");
 
 
 java.net.URLDecoder.decode(param, "utf-8");  //url解码
 java.net.URLEncoder.encode(param, "utf-8");   //url编码

 

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

java get方式中文乱码

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

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

java web中文乱码处理笔记

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

java编码转换,get请求提交的中文参数乱码