extjs做ajax请求时如何设置编码为GBK?

我使用extjs做项目。发现extjs在ajax时,请求的header默认为
Content-Type application/x-www-form-urlencoded; charset=UTF-8

但是我的后台java的编码是GBK的,不要让我改后台编码啊,遗留系统,没办法。

extjs的版本是3.3的,我试着Ext.lib.Ajax.defaultPostHeader += '; charset=gbk';是不行的,会改成默认的UTF-8

我试过在filter里request.setCharacterEncoding("UTF-8")是可以的,取parameter是没乱码了。但是存到GBK的数据库里面又成乱码了。

我在另外一个项目里,前台extjs是UTF-8,后台也是GBK的库。但是是没有乱码的,不知道他们是怎么做的。

所以想问一下各位extjs能让ajax时编码为GBK吗?

或者后台要怎么样设置一下才能让各处都没乱码?

2个回答

Ext.lib.Ajax.defaultPostHeader += '; charset=gbk';

这个是不是应该改成
Ext.lib.Ajax.defaultPostHeader = 'application/x-www-form-urlencoded; charset=gbk'

Ext.lib.Ajax.defaultPostHeader += '; charset=gbk加在Ext.onReady块里
然后后台
response.setContentType("text/json; charset=gbk");

立即提问