表单提交一个特殊字符串的时候,比如:拼字華盛頓郵報。按照GBK编码,浏览器encode的结果是:%C6%B4%D7%D6%C8A%CA%A2%EED%E0%5D%88%F3。比如百度的搜索:
http://www.baidu.com/s?wd=%C6%B4%D7%D6%C8A%CA%A2%EED%E0%5D%88%F3&rsv_bp=0&rsv_spt=3&rsv_n=2&inputT=352
但是用java.net.URLDecoder.decode的结果是:拼字�A盛�D郵報。出现乱码。用System.out.println(new String(java.net.URLEncoder.encode("拼字華盛頓郵報","GBK")));的结果是:%C6%B4%D7%D6%C8%41%CA%A2%EE%44%E0%5D%88%F3。
对比一下:
%C6%B4%D7%D6%C8A%CA%A2%EED%E0%5D%88%F3
%C6%B4%D7%D6%C8%41%CA%A2%EE%44%E0%5D%88%F3
问题就出在%
C8A和
%C8%41上,怎么处理这个问题。