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 相关文章推荐
Lazy Load 延迟加载图片的 jQuery 插件
Feb 06 Javascript
js去除重复字符串两种实现方法
Jan 09 Javascript
javascript ie6兼容position:fixed实现思路
Apr 01 Javascript
jQuery布局插件UI Layout简介及使用方法
Apr 03 Javascript
javascript两种function的定义介绍及区别说明
May 02 Javascript
js判断横竖屏及禁止浏览器滑动条示例
Apr 29 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
js获取指定时间的前几秒
Apr 05 Javascript
详解webpack分离css单独打包
Jun 21 Javascript
node.js基于express使用websocket的方法
Nov 09 Javascript
微信小程序顶部导航栏滑动tab效果
Jan 28 Javascript
详解如何在Vue项目中发送jsonp请求
Oct 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实现可运算的验证码
2015/11/10 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
文本框的字数限制功能jquery插件
2009/11/24 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
javascript中如何处理引号编码&amp;#034;
2013/08/15 Javascript
js单例模式详解实例
2013/11/21 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
用Python写的图片蜘蛛人代码
2012/08/27 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
python 文件查找及内容匹配方法
2018/10/25 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
python 19个值得学习的编程技巧
2020/08/15 Python
python实现简单贪吃蛇游戏
2020/09/29 Python
Windows和Linux动态库应用异同
2016/04/17 面试题
小学二年级学生评语
2014/04/21 职场文书
企业总经理任命书
2014/06/05 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
美术教师求职信范文
2015/03/20 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
2021/05/10 HTML / CSS
浅谈Python数学建模之整数规划
2021/06/23 Python
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技