问题描述
以前运行正常,突然有一天发现,POST提交的中文变为乱码。 页面编码为GBK. 接收页面,在最前面写有:request.setCharacterEncoding("GBK");如果在用 String str = request.getParameter("str"); 取参数后byte[] tempByte = str .getBytes("ISO8859_1");str = new String(tempByte,"GBK");可以获取到正常的中文编码。网站没有用fliter,其实fliter 里也是这句话:request.setCharacterEncoding("GBK");,但好像这句没起作用。服务器是linux,是否与服务器上某些配置有关?还是什么原因,谁能帮我解答?谢谢
解决方案
试试把request.setCharacterEncoding("GBK");放在最前面的filter中
解决方案二:
1.检查tomcat的server.xml URIEncoding="GBK" 、2.request.setCharacterEncoding("GBK"); 最好放在过滤器里面3.浏览器右键 编码选择GBK再有问题,肯定是人品
解决方案三:
找到tomcat的server.xml 然后在端口那个标签中加入一个属性URIEncoding="GBK" 让所有的jsp xml的编码都和URIEncoding的一样 保管不会出现乱码问题
解决方案四:
跟服务器也有关系,服务器上可能是没有安装中文字符集。还有正常的url请求,都会被转成ISO8859-1的编码的。如果要解决的话,可以考虑加上一个全局的字符集filter,代码可以从论坛搜索一下。或者PM给我。这样比较方便,避免出现更换服务器还要进行硬编码的情况。