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 相关文章推荐
javascript中的关于类型转换的性能优化
Dec 14 Javascript
chrome原生方法之数组
Nov 30 Javascript
jQuery数组处理代码详解(含实例演示)
Feb 03 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
May 23 Javascript
js 字符串转换成数字的三种方法
Mar 23 Javascript
html+js实现简单的计算器代码(加减乘除)
Jul 12 Javascript
基于JS实现翻书效果的页面切换样式
Feb 16 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
Oct 27 Javascript
express + jwt + postMan验证实现持久化登录
Jun 05 Javascript
javascript触发模拟鼠标点击事件
Jun 26 Javascript
实现一个 Vue 吸顶锚点组件方法
Jul 10 Javascript
微信小程序tabBar 返回tabBar不刷新页面
Jul 25 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 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
MooTools 1.2介绍
2009/09/14 Javascript
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
jQuery pagination分页示例详解
2018/10/23 jQuery
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
vue-froala-wysiwyg 富文本编辑器功能
2019/09/19 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
Python操作mongodb的9个步骤
2018/06/04 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
Python 列表反转显示的四种方法
2020/11/16 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
试述DBMS的主要功能
2016/11/13 面试题
应聘美工求职信
2013/11/07 职场文书
集团公司人力资源部岗位职责
2014/01/03 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
大学生找工作求职信
2014/07/09 职场文书
英语导游词
2015/02/13 职场文书
让文件路径提取变得更简单的Python Path库
2021/05/27 Python