首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

中文乱码在java中URLEncoder.encode步骤要调用两次解决

2013-12-26 
中文乱码在java中URLEncoder.encode方法要调用两次解决String namejava.net.URLEncoder.encode(测试,

中文乱码在java中URLEncoder.encode方法要调用两次解决
String name=java.net.URLEncoder.encode("测试", "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"));

?

输出为:

??????????? %E6%B5%8B%E8%AF%95
??????????? %25E6%25B5%258B%25E8%25AF%2595
??????????? %E6%B5%8B%E8%AF%95
??????????? 测试

第一次编码后将汉字编码为%和字母数字的格式,而第二次编码的时候是对%字母数字进行编码,虽然解码的时候使用的是ISO-8859-1,但是对于%和字母数字而言用ISO-8859-1和UTF-8解码出来的是一样的,此时就回到了汉字被编码过一次的字符串了,当再次进行解码的时候使用UTF-8就回将它转会汉字。

热点排行