作为一个菜鸟级程序员,最让我感觉头疼又无处不在的问题就是各种中文乱码问题,今天做一个web项目,又遇到这个问题,上网查了一下资料,又得到大神指点,决定总结出来和大家共享。
1、转码遇到问题
编码方式的gbk和utf不同,不可以互相转换,只有byte和utf或者byte和gbk之间的转换,即把要转码的内容转换为字节,然后再对字节转码。
String gbk="测试";
byte[] gbkBytes=gbk.getBytes("utf-8");
String gbkTest=new String(gbkBytes,"utf-8");
还有一种解决方法是
String a=URLDecoder.decode(str, "utf-8");
这种方式转码
jsp页面以get方式提交,出现乱码问题,是由于tomcat默认的编码格式是ISO-8859-1格式,要修改为与项目页面编码即一致要修改tomcat服务器的配置文件,在conf文件夹下的server.xml中的下面一句配置
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"
/>
修改为useBodyEncodingForURI="true"
就适应了页面编码
Post提交不会出现这个问题