日期:2014-05-16  浏览次数:20313 次

Extjs 中文乱解决

Extjs 中文乱码我们在用Extjs做项目时,如果整个项目工程用的都是UTF-8编码的话,不论是Extjs项目或是别的项目,都不会不存在中文乱码问题,但是有的公司有的项目非要用GB2312或GBK的话那就会出现乱码问题,而你做为一个代码工人,只能去改了。
因为ExtJS内部用的是UTF-8,所以与你项目用的GB2312或GBK编码冲突。我们要解决这个问题首先要保证我们的前后台编码一致,若是GB2312都用GB2312。
大体上有三个方面会出现中文乱码问题。
1、grid数据列表展示打开时会报错,可能在tomcat下不会报错,我遇到的情况是在websphere下报错了,解决方法是,后台输出前设定输出编码,java中是response.setCharacterEncoding("GB2312");这样就可以解决了。
2、store带参数加载数据,因为ext中的ajax用的是UTF-8,所以直接传的话会出现乱码,我们可以用Extjs的encodeURIComponent先把中文编码,然后在后台用java的java.net.URLDecoder再解码就可以解决,示例如下:
stroe加载:
store.baseParams={
euser:encodeURIComponent(euser)
batName:encodeURIComponent(batName)?? //编码
};
store.load();
后台解码:
if(!Util.isEmpty(euser))
euser=URLDecoder.decode(euser,"UTF-8");?? //解码转中文
if(!Util.isEmpty(batName))
batName=URLDecoder.decode(batName,"UTF-8"); //解码转中文