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 相关文章推荐
漂亮的仿flash菜单,来自蓝色经典
Jun 26 Javascript
IE和Firefox下event事件杂谈
Dec 18 Javascript
extjs每个组件要设置唯一的ID否则会出错
Jun 15 Javascript
jQuery中add()方法用法实例
Jan 08 Javascript
js学习心得_一个简单的动画库封装tween.js
Jul 14 Javascript
JavaScript requestAnimationFrame动画详解
Sep 14 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
Oct 19 Javascript
ES6 Generator函数的应用实例分析
Jun 26 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
Oct 12 Javascript
vue分页插件的使用方法
Dec 25 Javascript
js+canvas实现简单扫雷小游戏
Jan 22 Javascript
vue vant中picker组件的使用
Nov 03 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
PHP小教程之实现链表
2014/06/09 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
javascript实现密码验证
2015/11/10 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
Bootstrap中表单控件状态(验证状态)
2016/08/04 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
AngularJS动态菜单操作指令
2017/04/25 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
python实现跨文件全局变量的方法
2014/07/07 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
python中如何写类
2020/06/29 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
创业培训计划书
2014/05/03 职场文书
中药学自荐信
2014/06/15 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
个人作风建设总结
2014/10/23 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
2015年检验科工作总结
2015/04/27 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
JS中如何优雅的使用async await详解
2021/10/05 Javascript
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫