这几天遇到了一个经典问题,中文乱码。。。
以前处理过一些乱码问题,本以为这是几秒钟的事,然而卡壳了。。。突来灵感,在eclipse中js文件有中文的话一般要设置编码集为UTF-8
问题主要是:我在js脚本中拼的url有中文参数,而jsp页面是按工程统一编码GBK,哪知道到问题就出在这个GBK上,换了一下UTF-8,传给action的中文就好了
在这里我总结了以前一些解决乱码问题的方案:
1. 转码
str= new String(str.getBytes("iso8859-1"),"gb2312");
str= new String(str.getBytes("iso8859-1"),"GBK");
2.JSP中乱码
<%@ page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK" %>
3. tomcat中配置
更改 Tomcat\conf\server.xml,指定浏览器的编码格式为“简体中文”:
方法是找到 server.xml 中的
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK'
/>
4. servlet中
response.setContentType("text/html; charset=GBK");
5, jsp中js拼url带中文 编码集一定要是UTF-8的
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
6,最笨的方法
在struts中做过编码过滤,但js拼url时候还是有乱码,可以在url后加一个参数判断是什么地方传来的,如果是js拼字符串,则进行转码.(俺经常用,呵呵)