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写的操作系统
Apr 23 Javascript
JavaScript中Math对象方法使用概述
Jan 02 Javascript
JS+DIV实现鼠标划过切换层效果的方法
May 25 Javascript
vue中渐进过渡效果实现
Oct 27 Javascript
w3c编程挑战_初级脚本算法实战篇
Jun 23 Javascript
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
bootstrap table实现点击翻页功能 可记录上下页选中的行
Sep 28 Javascript
在一个页面实现两个zTree联动的方法
Dec 20 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
Dec 27 Javascript
vue-router配合ElementUI实现导航的实例
Feb 11 Javascript
解析JS在获取当前月的最后一天遇到的坑
Aug 30 Javascript
关于antd tree 和父子组件之间的传值问题(react 总结)
Jun 02 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 syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
javascript控制台详解
2015/06/25 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
python 简易计算器程序,代码就几行
2009/08/29 Python
python文件操作整理汇总
2014/10/21 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
python 两个数据库postgresql对比
2019/10/21 Python
keras slice layer 层实现方式
2020/06/11 Python
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
广州盈通面试题
2015/12/05 面试题
饲料采购员岗位职责
2013/12/19 职场文书
工地安全生产标语
2014/06/06 职场文书
警察群众路线整改措施
2014/09/26 职场文书
个人务虚会发言材料
2014/10/20 职场文书
红色电影观后感
2015/06/18 职场文书
红楼梦读书笔记
2015/06/25 职场文书
全网非常详细的pytest配置文件
2022/07/15 Python