java encode_java的web开发中URLEncoder.encode方法
一: 我們先看2個(gè)編碼的情況
String name=java.net.URLEncoder.encode("測(cè)試", "UTF-8");
System.out.println(name);
name=java.net.URLEncoder.encode(name,"UTF-8");
System.out.println(name);
name=java.net.URLDecoder.decode(name, "UTF-8");
System.out.println(name);
System.out.println(java.net.URLDecoder.decode(name, "UTF-8"));
輸出結(jié)果是
%E6%B5%8B%E8%AF%95
%25E6%25B5%258B%25E8%25AF%2595
%E6%B5%8B%E8%AF%95
測(cè)試
二; 我們來(lái)看編碼一次,提交給服務(wù)器的結(jié)果
我們吧“測(cè)試”編碼一次的字符串%E6%B5%8B%E8%AF%95 ?,提交,服務(wù)器端用request.getParameter("name")的到參數(shù),然后我們解碼
System.out.println(java.net.URLDecoder.decode(name, "UTF-8"));
我們發(fā)現(xiàn)得到的結(jié)果????è? ?顯示亂碼。
因?yàn)樵趓equest.getParameter("name")之前會(huì)自動(dòng)做一次解碼的工作,而且是默認(rèn)的ISO-8859-1,相當(dāng)于調(diào)用了一次java.net.URLDecoder.decode(name, "ISO-8859-1")
所以我們?cè)儆肬RLDecoder.decode(name, "UTF-8")就是亂碼了。
三: 我們?cè)诳淳幋a2次,提交給服務(wù)器的結(jié)果
編碼2次的字符串是%25E6%25B5%258B%25E8%25AF%2595 ,服務(wù)器端用request.getParameter("name")的到參數(shù),自動(dòng)按ISO-8859-1解碼得到的串是%E6%B5%8B%E8%AF%95 ?,也就是編碼一次得到的字符串。
然后,我們?cè)赟ystem.out.println(java.net.URLDecoder.decode(name, "UTF-8"));解碼輸出,得到的結(jié)果就是 “測(cè)試” 2個(gè)漢字。
總結(jié)
以上是生活随笔為你收集整理的java encode_java的web开发中URLEncoder.encode方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c# encode decode
- 下一篇: 易到网约车许可证到手,终于能卖个好价钱了