在最近几天的AJAX练习中,一直对GET方式传递参数产生的中文乱码问题头痛!
当在servlet中用
keyWord = new String(keyWord.getBytes("iso-8859-1"),"utf-8");
在firefox中可以解决乱码问题,但是在IE还是乱码,不知道为什么?难道firefox提交时将数据编码成iso-8859-1;
而IE则就不知道是用哪种格式,试过GBK,UTF-8都不行
还好暂且找到一种 通用的解决方式:
假设
keyWord ='阳光';
url="play.jsp? keyWord ="+ keyWord
若按照上述的地址直接访问,则中文会变成乱码。必须使用encodeURI('风声')进行两次编码。如下:
url="play.jsp? keyWord ="+encodeURI(encodeURI( keyWord ))
服务器通过以下方式获取值:
keyWord =URLDecoder.decode( keyWord ,"utf-8");