如何解决http中get请求中的乱码问题

如何解决http中get请求中的乱码问题,第1张

get请求的话有两种方法解决

(1)在servlet接收到乱码租州String时,使用iso8859-1将其还逗前原弊指蔽成byte,再用UTF-8将byte编成String

(2)在tomcat文件下的server.xml文件里的第65行,加上URIEncoding="UTF-8"

问:有时候在特殊情况下,需要使用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参数进行编码时,会和转义字符冲突,浏览器会将编码后的字符分开。会造成与原来的编码不符。第二次编码浏览器会将第一次转义的编码在转义过来,这样就和原来编老顷码的数据一致了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12407209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存