(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参数进行编码时,会和转义字符冲突,浏览器会将编码后的字符分开。会造成与原来的编码不符。第二次编码浏览器会将第一次转义的编码在转义过来,这样就和原来编老顷码的数据一致了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)