转
乱码的原因
在Ext的使用过程中,一不留心就出现了乱码,包括在客户端提交给服务器的数据中出现了乱码和服务器端返回给客户端的数据中出现了乱码,下面简单分析一下出现乱码的原因。
在一次页面浏览过程中,客户端对一个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里要配置哪些地方。
1. Preferences->General->Content Types 选中Text 编辑下面的Default encoding 为utf-8然后Update。
2. Preferences->General->Content Types->Editors->Text Editors->Spelling 下Encoding 选 Default(UTF-8)
3. 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"/>
ROR中文乱码问题解决 收藏
1.确保文档保存成 UTF8
VIM 中的设定 vimrc(/usr/share/vim/vimrc)文档中添加:set fileencoding=utf8
2.确保database.yml([project]/config/database.yml) 中有
encoding: utf8
3.确保 layout中有
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
4.mysql 中的编码,在my.ini([mysql installed path]/my.ini) 里面有 default-character-set=utf8
注意:4点做完后数据库需要重新建立一下,用query browser 来插入中文看看成功不。
分享到:
相关推荐
NULL 博文链接:https://rayln.iteye.com/blog/1484628
在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助
tree 的所有功能 很难得的 我刚调试好 只需要把数据库url 用户名和密码修改 ,就可以运行 extjs 动态树 tree ajax 全部功能 10分一点都不多,绝对值得。
extjs ajax同步请求所需js extjs ajax同步请求所需js
extjs ajax框架中文使用手册,extjs ajax框架中文使用手册
项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议
Extjs Ajax 购物车,直接下载是运行不了的,因为数据库你是没有的
EXTJS AJAX方式发送数据给后台服务器
ext extjs ajax java 中文教程 ext extjs ajax java 中文教程
extjs常见问题http://www.jb51.net/list/list_217_1.htm
NULL 博文链接:https://shuhaolan.iteye.com/blog/1337060
extjs3.0 ajax 同步请求
几天做后台看了一些Ext的知识,在切入工作项目的时候出现了乱码情况,所以就总结了这篇ExtJS中文乱码之GBK格式编码解决办法的文章,遇到此问题的朋友可以参考一下,希望本文对你有所帮助
NULL 博文链接:https://esayjava.iteye.com/blog/499176
对extjs时间的介绍,期待您的参与,我们一起努力
JavaScript ExtJS Ajax基础教程 快速入门
ExtJS(ajax框架) 4.2.1 功能介绍 功能丰富,无人能出其右。 无论是界面之美,还是功能之强,ext的表格控件都高居榜首。 单选行,多选行,高亮显示选中的行,拖拽改变列宽度,按列排序,这些基本功能ExtJS轻量级...
extjs中ajax网页无刷新与后台交互的代码实现,使用javascript开发的可以参照学习。。