1.页面还是要设置一下
<%@ page language="java" import="java.util.*,java.text.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
2.如果是用Ajax异步传输:我用的原生态的Ajax
xmlhttp.open("GET",url,true);
xmlhttp.setRequestHeader("Content-Type","text/html;charset=utf-8");
xmlhttp.send();
而一般代码都不写后面这段,我感觉和前面的页面那设置有点像,所以设置了一下,就ok了。
3.后台我用struts2做的所以就不写那个response.setContentTypeset.和set什么什么Encoding了。
书上对于struts2的中文乱码配置搞的什么struts.property,我也真的没咋细看,可能是由于着急做毕设,有点烦躁吧。
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<constant name="struts.locale" value="UTF-8"></constant>
就是直接在struts.xml中配置的常量。
4.最后在控制台上测试的结果却还是乱码,这真的让我很不爽。。。
在网上苦苦搜索,发现tomcat里面的conf目录下的server.xml好像要配置,说tomcat6.0后的版本不用配置了,之前的版本需要配置,我还是半信半疑,然后配置了下,打算试试,毕竟忍耐已经到了限度了。(在tomcat的conf目录下的server.xml文件,大概是在69行的位置)
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
然后重新部署运行了下,终于输出了正确结果。
5.数据库也尽量和前后台统一编码
6如果使用hibernate尽量使用utf-8。
配置hibernate框架时应注意在hibernate.cfg.xml配置文件中设置编码:
<property name="connection.url">
jdbc:mysql://localhost:3306/logistics?useUnicode=true&characterEncoding=utf-8
</property>
后台在往数据库里存数据时,不配置,也会在数据库中产生乱码。反正我就看到了这些。。。。。。。。。。。。