对于常见的servlet中文乱码问题,主要是因为参数传递过程中未进行编码格式控制,在servlet方法的最前面加上request.setCharacterEncoding(),一般即可解决
但这次写项目时遇到这样一个问题,我在servlet中已进行了编码控制,可是中文仍是乱码,经过查阅资料发现问题如下:
在我这个项目中,因项目需要必须通过get方式进行请求,而request.setCharacterEncoding()的设置是仅对post请求生效的,因而实际上仍未进行编码控制
解决方案如下:
1.将请求方式改为post
2.仍使用get请求,在servlet中对获取到的中文参数进行如下处理:
new String(para.getBytes("UTF-8"), "ISO-8859-1");
其中:
para:中文参数
UTF-8:发送方的字符编码
ISO-8859-1:想要转换的字符编码