本篇文章给大家谈谈javaget请求中文乱码,以及java get请求参数中文乱码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、java get 请求 返回值乱码2、java 接收get请求带中文乱码,已经更改字符编码 可是不生效3、java get方式中文乱码4、GET请求中关于中文的编码与解码5、浏览器get请求到java后台的值是乱码
java get 请求 返回值乱码
您好,提问者:
如果包含中文,不建议使用get方式,可采用post提交方式。
//可以采用加密、解码的方式进行加码提交,例如:
//加码
String str = java.net.URLEncoder.encode(“中国”,”UTF-8″);
//解码
String jiema = java.net.URLDecoder.decode(str,”UTF-8″);
java 接收get请求带中文乱码,已经更改字符编码 可是不生效
给的信息太少了,,出现乱码有好几多原因。。主要是你请求是传参编码格式、容器格式以及你代码去参是的格式。最好把这些都使用统一的格式。
java get方式中文乱码
get方式提交的参数编码,只支持iso8859-1编码。
因此,如果里面有中文。
在后台就需要转换编码,如下
String zhongwen = request.getParameter(“zhongwen”);
zhongwen = new String(zhongwen.getBytes(“iso8859-1″),”GBK”);
前提是你页面编码就是GBK,如果是utf-8,那上面那句代码后面就改成utf-8
GET请求中关于中文的编码与解码
问:有时候在特殊情况下,需要使用GET请求来传递参数,而传递的参数中有中文字符。如何直接传递过去,会导致乱码问题,针对这个情况如何解决?
原因:在使用get请求传递参数时,需要依赖浏览器环境,由于我们在javascript中没有做任何操作,完全依赖浏览器进行编码后传递到后台,一旦于后台编码格式不一样,就会出现乱码。
答:
1 在javascript中使用encodeURI()方法进行编码。
在java后台使用 new String(str.getBytes(“iso8859-1″),”UTF-8”)方法来进行解码。
2 在javascript中使用encodeURI(encodeURI(str))进行编码。
在java中使用URLDecoder.decode(str, “utf-8”)进行解码。
为什么这里要进行二次编码?
利用encodeURI()在javascript中对中文URL参数进行编码时,会和转义字符冲突,浏览器会将编码后的字符分开。会造成与原来的编码不符。第二次编码浏览器会将第一次转义的编码在转义过来,这样就和原来编码的数据一致了。
浏览器get请求到java后台的值是乱码
编码问题首先检查编码和解码是否一致。看下你的jsp是否编码设置了utf-8,默认是iso-8859-1,
然后就是解码的时候的编码,在你的servlet或者controller中检查request和response是否设置了编码,一般是request.setCharacterEncoding(“utf-8”);response.set…
如果都设置了的话,post发送数据应该是不会乱码的。get发送数据乱码,是因为你的jsp中设置的编码utf-8没有生效在get请求下,解决方案两种:1、修改服务器中的默认编码,
在tomcat安装目录下的conf/server.xml中,有如下的配置:
Connector connectionTimeout=”20000″ port=”8080″ protocol=”HTTP/1.1″ redirectPort=”8443″/可以设置端口
这里呢,也可以设置另外一个跟上述编码问题有关的参数信息:URIEncoding,该配置决定了使用get请求通过浏览器地址栏访问tomcat时的编码方式,默认的编码方式使ISO8859-1,这一点我们可以从官网文档() 获悉:
URIEncoding:This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
知道了这点,接下来就简单了,我们可以这样配置,则上述代码中,就不需要再从ISO8859-1转为UTF-8了:
URIEncoding=”UTF-8″
就是改成这样: Connector connectionTimeout=”20000″ port=”8080″ protocol=”HTTP/1.1″ redirectPort=”8443″ URIEncoding=”UTF-8″/
即可。
或者使用后台手动进行解码:
String s=new String(str.getbyte(“iso-8859-1″),”utf-8”);
先解码后编码。
如果嫌每次这样麻烦,可以写过滤器拦截你的get清秀将request中的parameter转换编码
关于javaget请求中文乱码和java get请求参数中文乱码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。