页面,数据库,服务器 等编码方式向utf-8靠拢
1.JSP输出中文的乱码问题
1).jsp页面头部<%@ page contentType="text/html;charset=utf-8" %>(在Servlet中使用httpServletResponse.setContentType("text/html;charset=utf-8")),最好同时在JSP页面的head部分加上<meta http-equiv="Content-Type" content="text/html; charset="utf-8">。
2).在每次要输出中文的地方主动转换编码方式
2.获取表单提交的数据时的中文乱码问题
- <%@ page language="java" contentType="text/html; charset=UTF-8"
-
pageEncoding="UTF-8"%>
-
<% String str=request.getParameter("chStr");
-
if(str==null) str="没有输入值";
- %>
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- 你输入的内容为:<%= str %><br/>
-
<form action="luanma.jsp" method="post">
-
请输入中文:<input type="text" name="chStr"/><input type="submit" value="确定"/>
-
- </form>
- </body>
-
</html>
这段代码产生提交数据中文乱码
解决办法1.局部解决方法:将表单中的中文数据取出来过后再转换编码,String str = request.getParameter("chStr"); String str = new String(str.getBytes("ISO-8859-1"),"utf-8"),
解决办法2.让所有页面的请求通过一个Filter,将处理字符集设置为utf-8
拷贝tomcat示例代码SetCharacterEncodingFilter到自己的工程中,
在自己工程的web.xml中加入代码:
- <filter>
- <filter-name>Set Character Encoding</filter-name>
-
<filter-class>linzhanghui.iteye.com.util.filter.SetCharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>Set Character Encoding</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
3.URL中中文处理:
打开Tomcat安装目录下的/conf/server.xml文件,找到Connector块,往其中添加URIEncoding="utf-8"/>
示例:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8" />
4.数据库访问时的乱码问题
连接字符串写成如下形式:
jdbc://mysql://hostname:port/DBname?user=username&password=pwd&useUnicode=true&character Encoding=utf-8
数据源的方式连接数据库:
<parameter>
<name>url</name>
<value>jdbc:mysql://hostname:port/DBname? &useUnicode=true&characterEncoding=utf-8 </value>
</parameter>
但是,如果使用一个已经存在的数据库,数据库的编码方式为ISO-8859-1,而web应用中使用utf-8。且数据库中已经有很多重要信息,因此不能通过更改数据库的编码方式来解决问题。这个时候,在往数据库中写数据时,一定要在jdbc连接字符串中加入"useUnicode=true&characterEncoding=ISO-8859-1"
具体实现如下:
public String charConvert(String src){
String result=null;
if (src!=null) {
try {
result = new String(src.getBytes("ISO-8859-1"),"utf-8");
} catch (Exception e) {
result = null;
}
}
return result;
}
于是,在从数据库读出数据过后调用charConvert(rs.getString("colName"))
分享到:
相关推荐
学习JSP的相关读书笔记,可作为平时学习JSP的参考资料或者作为课设的总结
JSP学习笔记(三)-----使用JSP处理用户注册和登陆
《JSP & Servlet学习笔记(第2版)》涵盖了文本处理、图片验证、自动登录、验证过滤器、压缩处理、JSTL应用与操作等各种实用范例。 《JSP & Servlet学习笔记(第2版)》以“微博”项目贯穿全书,将JSP & Servlet技术应用...
JSP&Servlet学习笔记,适合初学jsp和servlet的人群,初学者学习可能有点困难
林学良Jsp&Servlet学习笔记,html格式的,很基础的学习文档。
第六篇为“Web应用高级专题”,主要讲述Servlet过滤器、JSP异常处理、JSP日志、认证和安全、部署等内容;第七篇为“Web应用开发实例”,围绕一个电子商务网站,从需求分析、架构选取、数据存储、开发、测试及部署等...
[JSP&Servlet;学习笔记(第2版)]。
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...
MySQL学习笔记-JSP操作MySQL
JSP笔记,JSP笔记 JSP JAVA 笔记
JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 本书针对Servlet3.0的新功能全面改版,无论章节架构...
JAVA-WEB学习笔记+JSP学习笔记
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
该资源为本人在专业培训学校的jsp学习笔记,内容非常全面!
JSP Servlet 学习笔记 第2版 林信良 随书光盘 第3卷
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。, 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...
JSP(java server page) 1.JSP介绍: JSP是服务器端运行的页面,JSP本身就是一个Servlet,他不仅可以包含静态的HTML代码,也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求。 Jsp文件...
Servlet &JSP学习笔记NetBeans源代码,课本中所有的源代码,NetBeans版本,服务器为Tomcat
书 名:JSP & Servlet学习笔记(第2版) 作 者:(台湾)林信良 著 出 版 社:清华大学出版社 出版时间:2012-5-1 ISBN:9787302283669 纸书页数:456页 定 价:¥ 58.00 内容简介: 本书是作者多年来...
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记