Extjs Ajax 乱码问题解决方案


Posted in Javascript onApril 15, 2009

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

而在Ext中的提交数据的过程中,Ext框架用的是都是UTF-8编码,而且通过JSON提交的数据也是UTF-8编码,所以要求所有的文件都是UTF-8编码。
解决乱码的方法
以下几项首先必须要在平时的编码过程中做到:

(1) JAVA后台文件加入 response.setContentType("text/html");
response.setCharacterEncoding("utf-8");

(2)在文件中显示声明字符编码,<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

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

最后,问题还可能出现在文件的保存格式上。就是你把代码文件保存的时候,如果开发环境默认保存的不是UTF-8格式,那么也会出现问题! 所以就要对开发环境也有一个要求。
开发环境的配置
如果采用记事本来编写保存代码文件(.js),那这个就会出问题,主要是由于在windows系统里记事本默认的编码格式是ANSI,这样基本上和目前网页中编码的格式都不同因此就会出现编码格式不正确的问题。解决办法就是打开xx.js文件然后另存为,在保存类型处选择utf-8编码格式就可以了。
当然,主流还是使用MyEclipse,所以说一下MyEclipse里要配置哪些地方。
Preferences->General->Content Types 选中Text 编辑下面的Default encoding 为utf-8然后Update。
Preferences->General->Content Types->Editors->Text Editors->Spelling 下Encoding 选 Default(UTF-8)
Preferences->General->Content Types->Workspace下Text File Encoding 选 Other: UTF-8
最后如果还出现乱码 , 利用
System.out.print(request.getCharacterEncoding());
System.out.print(response.getCharacterEncoding());
察看request 或 response 编码是否不是utf-8
若不是,利用web.xml中的 filter 解决.

<filter>
<description>no</description>
<display-name>EncodingFilter</display-name>
<filter-name>EncodingFilter</filter-name>
<filter-class>
com.hope.filters.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
或者设置
<globalization responseEncoding="utf-8" fileEncoding="utf-8" requestEncoding="utf-8"/>
Good Luck!

Javascript 相关文章推荐
一个用js实现控制台控件的代码
Sep 04 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
Nov 30 Javascript
有关JavaScript中call()和apply() 的一些理解
May 20 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
详解Angualr 组件间通信
Jan 21 Javascript
微信小程序 常用工具类详解及实例
Feb 15 Javascript
Vue中img的src属性绑定与static文件夹实例
May 18 Javascript
Node.js使用gm拼装sprite图片
Jul 04 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
JavaScript设计模式之单例模式简单实例教程
Jul 02 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
Feb 27 Javascript
react项目如何使用iconfont的方法步骤
Mar 13 Javascript
网页开发中的容易忽略的问题 javascript HTML中的table
Apr 15 #Javascript
jQuery 入门讲解1
Apr 15 #Javascript
javascript 类方法定义还是有点区别
Apr 15 #Javascript
javaScript 读取和设置文档元素的样式属性
Apr 14 #Javascript
JavaScript获取GridView选择的行内容
Apr 14 #Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
Apr 14 #Javascript
JavaScript asp.net 获取当前超链接中的文本
Apr 14 #Javascript
You might like
初级的用php写的采集程序
2007/03/16 PHP
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
python实现sublime3的less编译插件示例
2014/04/27 Python
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
python 剪切移动文件的实现代码
2018/08/02 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
Flask-WTF表单的使用方法
2019/07/12 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Python decimal模块使用方法详解
2020/06/08 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
.NET概念性的面试题
2012/02/29 面试题
网上开商店的创业计划书
2014/01/19 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
电影地道战观后感
2015/06/04 职场文书
公司年会主持词范文!
2019/05/07 职场文书
python基础之错误和异常处理
2021/10/24 Python
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android