在
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
,所以说一下
MyEclipse8.5
及以上版本里要配置哪些地方。
1.Preferences->General->Content
Types
选中
Text
编辑下面的
Default encoding
为
utf-8
然后
Update
。
2.Preferences->General ->Editors->Text
Editors->Spelling
下
Encoding
选
Default(UTF-8)
3.Preferences->General
->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"/>
分享到:
相关推荐
这是一份关于2.1版Java Servlet API的说明文档。Java Servlet API由两个软件包组成:一个是对应HTTP的软件包,另一个是不对应HTTP的通用的软件包。这两个软件包的同时存在使得Java Servlet API能够适应将来的其他...
解决servlet页面乱码问题,对于初学者还是有帮助的
Servlet + Tomcat 中文乱码的解决方法,浏览器把Unicode字符转换为GBK字符,这样页面的内容和浏览器的显示模式都设成了GBK,就不会乱码了
F:\文档\PDF格式学习资料\主题:Java Web开发(JSP、Servlet)乱码终极解决方案.txtF:\文档\PDF格式学习资料\主题:Java Web开发(JSP、Servlet)乱码终极解决方案.txtF:\文档\PDF格式学习资料\主题:Java Web开发...
本文档是《Java Web开发教程——入门与提高篇(JSP+Servlet)》一书的附赠电子资料,对Struts2、JSF、Hibernate、iBATIS和JPA等框架进行了简单介绍,并且给出了两个自定义简单框架,还包括3个实例,共149页。
这是servlet出现乱码,以及乱码出现时的解决办法。
解决servlet中文乱码问题1
Jsp和Servlet中文乱码问题
在Java Web程序开发中,由于Web容器内部使用编码格式并不支持中文字符集,所以,处理浏览器请求中的中文数据就会出现乱码的现象。由于Web容器使用了ISO-8859-1的编码格式,所以在Web应用的业务处理中也会使用ISO-...
java servlet 中文说明手册,适合新手学习java servlet
utf8解决JSP中文乱码问题 Tomcat 5.5中文乱码 JDBC ODBC Bridge的Bug及其解决方法 Solaris下Servlet编程的中文问题及解决办法
主要介绍了Java Servlet输出中文乱码问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
用JSP+JavaBean+Servlet开发的数据库应用实例——CD管理系统,有完整的工程源码,并且利用它演示在Servlet中连接和使用MySQL数据库。
1 GBK包含GB2312 即如果通过GB2312编码后可以通过GBK解码 反之可能不成立; 2 java nio charset Charset defaultCharset 获得平台默认字符编码; 3 getBytes 是通过平台默认字符集进行编码;
解决jsp+servlet开发中的中文乱码问题
servlet输出JS乱码问题
jsp传参 servlet接收中文乱码问题的解决方法.docx
将任意字符(包括汉字)加密并编码成数字+数字,解密时先解码后解密还原成相应字符。 例如: 原文:测试 helloworld ... 3,可用于解决jsp,servlet的中文乱码问题。 数据加密后传出去,在调用的地方解密即可。
servlet与jsp中文乱码处理,详细介绍多种乱码处理方法,包括使用过滤器的方法
彻底解决Servlet及jsp解决中文乱码问题