以前运行正常,突然有一天发现,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中
跟服务器也有关系,服务器上可能是没有安装中文字符集。
还有正常的url请求,都会被转成ISO8859-1的编码的。
如果要解决的话,可以考虑加上一个全局的字符集filter,代码可以从论坛搜索一下。
或者PM给我。
这样比较方便,避免出现更换服务器还要进行硬编码的情况。
找到tomcat的server.xml 然后在端口那个标签中加入一个属性
URIEncoding="GBK" 让所有的jsp xml的编码都和URIEncoding的一样 保管不会出现乱码问题
1.检查tomcat的server.xml URIEncoding="GBK" 、
2.request.setCharacterEncoding("GBK"); 最好放在过滤器里面
3.浏览器右键 编码选择GBK
再有问题,肯定是人品