服务器端用的是UTF-8编码,页面的QueryString用的是GBK编码,导致了页面的QueryString用GBK编码进行URLEncoder,而服务器用UTF-8进行URLDecoder,导致乱码问题。 如果我采用 new String(queryString.getBytes("UTF-8"),"GBK") ,问题还会存在,因为UTF-8每个汉字占用3字节,GBK每个汉字占用2字节。 最后导致转换的文字不符合。比如如果是两个汉字,调用getBytes("UTF-8")转换成UTF-8,会是6个字节,重组GBK字符串的时候会变成3个汉字。
firefox QueryString 默认采用GBK编码
web服务器采用UTF-8来解码
我那个main里的几行代码,是在进行模拟