问题原因:将“汉字”通过encodeURI或者 encodeURIComponent 编码,会得到字符串 %E6%B1%89%E5%AD%97(6字节),此字符串使用UTF-8编码的,如果此时用ISO-8859-1解码,在ISO-8859-1的编码表中找不到“E6”等字段对应的字符,所以是6个问号。

 解决方案:将汉字参数编码两次,第二次编码时,相当于对非中文字符 %E6%B1%89%E5%AD%97 进行编码,此时服务端无论用哪种解码方式,都将得到 %E6%B1%89%E5%AD%97 字符,可以正确还原 。

    这样,再通过UTF-8 解码该字符,就可以得到“汉字”了。

    即执行 URLDecoder.decode("%E6%B1%89%E5%AD%97", "UTF-8") 方法