遇到了中文乱码的问题,网上搜了一圈,自己做个总结记录一下。
对于不同的请求方式,使用不同的处理方式:
POST方式:使用setCharacterEncoding("UTF-8")就可以解决中文乱码的问题。(ps:这个方法只对post请求方式有效)
GET方式:使用java.net.URLEncoder.encode在浏览器端进行两次编码,然后再服务端使用java.net.URLDecoder.decode进行一次解码。(ps:两次编码是为了屏蔽各种容器的不同编码方式,如果已经能够明确容器使用的是UTF-8,那么进行一次编码就能在服务器端得到正确的中文)
小思:乱码的原因一般存在于页面文件编码、页面编码,容器编码,所以在这过程中都将编码改为utf-8应该可以避免一些奇怪的问题。另外关于get方式,因为各种容器的编码不同,所以使用两次encode编码,可以将字符都转为ASCII编码,这样不管容器是什么编码方式都可以正确的被UTF-8编码识别。