锁定老帖子 主题:AJAX POST时的中文乱码问题和解决
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-12
我在js中建立一个数组items,如下:items=[{name:'中文'}],我把这个数组转换成字符串发往后台,后台接收数据并存入数据库: js 代码
js 代码
然而,这样在后台接收数据并存储到数据库仍然是乱码的形式,我后台全部都是以UTF-8编码方式。 解决: 试了好长时间,最后终于解决,方法很简单,在后台加入这样一行代码: java 代码
application/x-www-form-urlencoded 编码方式的字符串解码成utf-8编码方式。请教:(虽然在网上找到很多关于乱码问题的解决办法,但大都不能针对自己的问题。) 虽然已经解决了乱码问题,但实际上我还不是很明白在js不进行encode而直接传送为什么会是乱码,难道Ext的Ajax不是默认UTF-8编码方式?。请大家指教!!! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-12-13
我的博客里有一个解决方案http://xiaocheng.iteye.com/blog/147913 解决方案是用escape函数来编码. Escape.java 代码
|
|
返回顶楼 | |
发表时间:2007-12-14
escpe并不好,用encodeURIComponent
|
|
返回顶楼 | |
发表时间:2007-12-21
客户端: items:Ext.util.JSON.encode(items)
服务端这样: strJsonData = new String(strJsonData.trim().getBytes("ISO-8859-1"), "utf-8"); 就OK了 |
|
返回顶楼 | |
发表时间:2007-12-21
客户端文件本身的存储格式是否UTF-8格式?
|
|
返回顶楼 | |
发表时间:2007-12-24
看到了以下这段话:
碰到使用ajax获得数据,或者提交数据出现乱码 英文情况下不会出现乱码,用了中文才可能乱掉,这是因为咱们的win操作系统,保存文件的默认编码是gb2312,而ajax传输数据的默认编码是utf-8,推荐大家将数据格式统一为utf-8,不但可以解决眼前的乱码问题,对以后扩展为多语言也有好处。 |
|
返回顶楼 | |
发表时间:2007-12-24
如果是做Ajax应用程序, 最好是整体上采用utf-8编码.
回楼主, Ext是用UTF-8的, 是你的服务端没有采用UTF-8. |
|
返回顶楼 | |
发表时间:2008-01-24
在Request Headers中设置Content-Type:application/x-www-form-urlencoded; charset=utf-8,具体方法:将Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8'加在Ext.onReady块里,此方法可以解决用EXT在POST时的中文乱码问题。
|
|
返回顶楼 | |
发表时间:2008-02-18
我的问题 到现在还没解决。也是乱码问题。我用的prototype
|
|
返回顶楼 | |
发表时间:2008-02-18
真是老生常谈了,在2001年混CSDN的时候我就到处靠传播点encoding的基本常识来接分,7年过去了,抗战都要胜利了,咋还有人不断的栽倒在这上面呢?
|
|
返回顶楼 | |