`
WaterSugar
  • 浏览: 93646 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Ext中文乱码解决方案

    博客分类:
  • Ajax
阅读更多

  在Ext的使用过程中,一不留心就出现了乱码,包括在客户端提交给服务器的数据中出现了乱码和服务器端返回给客户端的数据中出现了乱码,下面简单分析一下出现乱码的原因。

  在一次页面浏览过程中,客户端对一个URL发起浏览请求,服务端针对这次请求进行解析,而在字符编码解析方面,首先他检查该页面中的字符编码设置,即<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,这样,在页面中显示声明了字符编码为UTF-8,服务器就会将该页面用UTF-8的编码输出,而如果页面中没有显示声明,在服务器中都有一个默认的字符编码,比如Apache通过AddDefaultCharset GB2312设置为GB2312,针对没有声明的文件,他会用默认编码输出,这个时候,如果页面的真正内容是UTF-8编码的话不会出现问题,如果在服务器中用GB2312编码保存,而页面输出又是UTF-8,这样就会出现乱码。

  而在Ext中的提交数据的过程中,Ext框架用的是都是UTF-8编码,而且通过JSON提交的数据也是UTF-8编码,所以要求所有的文件都是UTF-8编码。

  因此,针对上面的情况,解决乱码的方法如下:

  (1)前后台所有文件统一用UTF-8编码,数据库中最后也用UTF-8编码;

  (2)在文件中显示声明字符编码,<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,如果是动态语言的文件,特别是针对autoLoad载入的文件,如果是HTML文件,又没有显示声明,这个就需要转为动态语言文件了,在其中改变Response Headers中Content-Type的设置,在PHP中实现的方法为:header('Content-Type:text/html; charset=utf-8');

  (3)对于提交中出现的乱码,在Ext中可以修改Request Header中Content-Type的设置,具体的方法为:Ext.lib.Ajax.defaultPostHeader += ";charset=utf-8";

  以上是本人使用Ext时的体会,如有错误,希望大家多多指出。

分享到:
评论
3 楼 379548695 2008-09-10  
这个也搞定
2 楼 379548695 2008-08-24  
我form的post提交也是这种情况!
1 楼 379548695 2008-08-24  
楼主遇到过这种情况没
就是在ff下提交是正常的。可是在ie下提交却出现啦乱码。。。。还有就是
Ext.lib.Ajax.defaultPostHeader += ";charset=utf-8";你这个是怎么加的?谢谢楼主啦希望你能看到哈。

相关推荐

Global site tag (gtag.js) - Google Analytics