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

我不明白的是为什么Stringstr=newString(request.getParameter("something").getBytes("ISO-8859-1")... 我不明白的是为什么String str = new
String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8") 这样就能解决乱码? 我自己试了一下 String test=new String ("中文".getBytes("iso8859-1"),"utf-8");
System.out.println("================"+test); 这样会出现乱码我知道。但是为什么使用第一个不会出现乱码而且正好就解决了get方法的乱码问题呢?
展开
 我来答
llei32wang
推荐于2017-10-12 · TA获得超过2736个赞
知道大有可为答主
回答量:1478
采纳率:60%
帮助的人:1404万
展开全部
这个原因是服务器导致的,服务器比如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编码
enjoy我爱LUO
2013-05-21
知道答主
回答量:4
采纳率:0%
帮助的人:5828
展开全部
通常浏览器是用iso-8859-1编码传输信息的。
而也要看你在页面那边是设置什么编码的,假如是utf-8。你编码是用utf-8,解码是用iso-8859-1,那么就像你自己写的那个一样,那肯定会乱码的。
第一个是将接收到的数据,用iso8859-1解码,再用utf-8编码,那就解决了乱码问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gf...g@163.com
2013-05-21
知道答主
回答量:4
采纳率:0%
帮助的人:3万
展开全部
是的 这种重视出现一些问题啊 ,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式