1 所有的 .java|.jsp|.html|.xml 源文件均使用utf-8编码格式保存到系统磁盘。
如:在Eclipse中编辑文件,选中文件打开右键菜单选择属性,将文本文件编码设置为其他并选择UTF-8;也可以在
Eclipse——首选项——常规——内容类型中设置各种文件的缺省编码,这样以后所有的文本文件都使用统一编码。
2 在页面显示中文方面 .jsp文件中必须将文件编码格式pageEncoding、<@page>指令中contentType编码格式、<html>的<meta>标签编码格式都设置为utf-8。
如:
<%@ page language="java" pageEncoding="utf-8"%>
<%@ page contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>中文问题</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
</html>
注意: META标签中的编码字符必须是"utf-8",如果不加中划线,则在ie下出现乱码情况,但ie的原文件查看却是中文!
3 把表单提交内容的字符集设为utf-8,在jsp、servlet或者filter中使用request.setCharacterEncoding("utf-8");
此行代码必须写在最前面,如果在此前进行任何request.getPragrmber()方法都会使字符转换失效!
4 页面超连接连接中带的汉字如中文目录"/系统/页面/首页.jsp",则在tomcat/conf/server.xml中的配置文件中加上:useBodyEncodingForURI="true"即可正常使用getParameter取出正确内容。如:
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"
disableUploadTimeout="true" />
注:如果使用get方法提交中文参数如"?name=张三",则必须使用encode编码转换为百分号表示来传递,如:
"?name=%E5%BC%A0%E4%B8%89",注意长度不要超过连接字符串最大长度。
编码方法:[JavaScript] encodeURIComponent("中文");
[Java&JSP] java.net.URLEncoder.encode("中文");
解码方法:[JavaScript] decodeURIComponent("%E4%B8%AD%E6%96%87");
[Java&JSP] java.net.URLDecoder.decode("%E4%B8%AD%E6%96%87");
5 连接MySQL数据库时修改mysql在windows/my.ini里default-character-set=utf-8,并将mysql里数据库和表也都设为utf8_unicode_ci。
6 数据库连结url:jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8
注意,关键就在于此:此句中间是'&'不是'&'这是因为数据库连结时,在.jsp和.java文件中应该用&号,而XML文件中才需要用&
7 使用AJAX方式提交请求时必须为XMLHttpRequest添加头声明
注意:如果已经存在已此名称命名的http头,则覆盖之。此方法必须在open方法后调用。
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;ch
arset=UTF-8");
Tomcat乱码问题:Get方法的处理
tomcat对post和get的处理方法不一样,所以过滤器不能解决get的乱码问题,它需要在其他地方设置。
打开<tomcat_home>/conf目录下server.xml文件,找到对8080端口进行服务的Connector组件的设置部分,给这个组件添加一个属性:URIEncoding="UTF-8"。修改后的Connector设置为:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
; connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
* 注意修改后重新启动tomcat才能起作用
分享到:
相关推荐
myeclipse(设置JSP页面编码格式)【图解很详细的】....下载下看看哦
总结了在java web开发中遇到的种种编码问题,使乱码问题逐一清除
jsp,servlet编码问题
让你全面了解jsp编码原来,顺利解决可能遇到的各种中文乱码问题
JSP编码中乱码问题.doc 叫你怎么解决jsp编码中出现的各种中文乱码的解决办法
JSP汉字编码问题 JSPServlet汉字编码问题
jsp使用URL编码传递中文参数乱码问题
JSP Servlet 汉字编码问题 乱码解决方法
JSP Servlet 中的汉字编码各种问题解决方法
jsp页面向数据库中写入数据,当数据为英文时,可正常写入,当数据为中文时,就会出现乱码。
增加了设置编码格式的方法setCharset();可根据需求设置,无压力解决乱码问题;
JSP 开发中过滤器filter设置编码格式的实现方法 我们知道为了避免提交数据的乱码问题,需要在每次使用请求之前设置编码格式。在你复制粘贴了无数次request.setCharacterEncoding(“gb2312”);后,有没有想要一劳永逸...
JSP用户提交页面编码,JSP用户提交页面编码
JSP和Servlet中的几个编码的作用及原理 JSP和Servlet中的几个编码的作用及原理
jsp初学者编码题,火车票查询,包括数据库,个人做的,有不好的编码,请多多指教,谢谢!
jsp编码设置成utf8
jsp使用URL编码传递中文参数问题.doc 介绍了如何在JSP编写动态网页程序中将字符进行转换
Java源文件 .java Java字节码文件 .class 动态页面 .jsp 静态页面 .html 脚本文件 .js
文档内解释了JSP编程过程种所出现的各种乱码问题的原因以及解决方法
在做J2EE时,经常需要将静态网页转换成jsp,但下载下来的htm或htm文件本身是UTF8和unicode,直接...这个代码程序就是用来读取某种编码格式的html或txt文件并将它转换成你所想要的编码格式。下载后只需做相关修改即可。