1.struts2.0中,利用form表单传递参数,在action中取值正常,不会出现乱码现象,但是通过URL传递中文会出现乱码现象。如果将页面编码改
为GBK,在action中利用 cxz=new String(cxz.getBytes("ISO-8859-1"),"GBK");可以正常,但是这会导致表单传递的参数变为乱码,且无法
转换。
2.有人在tomcat中加上uriEncoding="utf-8",页面统一使用utf-8,经过测试,在URL传递某些汉字时正常,但是如果传递类似于初一一班这种汉字时会成为初一一口。
3.页面仍然统一使用UTF-8编码,在URL传递的变量时加上编码,如:
page1.setPageString(pagecount,rownum,Integer.parseInt(pageno1),pagerow,"auid="+auid_test+"&cxtj="+getCxtj()+"&cxz="+java.net.URLEncoder.encode(cxz,"UTF-8"));
取值的时候做如下编码转换:
if(getUrlflag()==null)
{
cxz=new String(cxz.getBytes("ISO-8859-1"),"UTF-8");
System.out.println("---------------------------------------->"+cxz);
setCxz(cxz);
}
但这种做法需要区别参数是通过post传递还是get传递,较为麻烦。
4.添加一个过滤器filter,暂未研究。这几天被这个乱码问题弄得头都大了,做这么久的java/jsp,乱码碰到不少,象这么讨厌的倒是第一次
碰到。