Ext2+struts2的中文乱码解决
在一次页面浏览过程中,客户端对一个URL发起浏览请求,服务端针对这次请求进行解析,而在字符编码解析方面,首先他检查该页面中的字符编码设置,即<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,这样,在页面中显示声明了字符编码为UTF-8,服务器就会将该页面用UTF-8的编码输出,而如果页面中没有显示声明,在服务器中都有一个默认的字符编码,比如Apache通过AddDefaultCharset GB2312设置为GB2312,针对没有声明的文件,他会用默认编码输出,这个时候,如果页面的真正内容是UTF-8编码的话不会出现问题,如果在服务器中用GB2312编码保存,而页面输出又是UTF-8,这样就会出现乱码。
而在Ext中的提交数据的过程中,Ext框架用的是都是UTF-8编码,而且通过JSON提交的数据也是UTF-8编码,所以要求所有的文件都是UTF-8编码。?
1```修改数据库的字符集为UTF8```
2```Hibernate的配置``
?程序代码
<property name="connection.url">jdbc:mysql://localhost:3306/S2blog?useUnicode=true&characterEncoding=UTF-8</property>?
3````在struts.properties文件中修改Struts2的传输编码``
?struts.i18n.encoding=UTF-8?
4```在Ext.onReady中设置Ext的传输编码
?Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8'?