一、页面乱码问题
<%@ page language="java" contentType="text/html; charset=iso8859-1"
pageEncoding="UTF-8"%>
<!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>乱码问题</title>
</head>
<body>
<h3>这里是首页。。。</h3>
</body>
</html>
注:
1)page language="java" pageEncoding="UTF-8" :这里的"UTF-8"指的是jsp文件的存储格式。Eclipse会根据这个编码格式保存文件。并编译jsp文件,包括里面的汉字。
2)contentType="text/html; charset=iso8859-1" :这里的“iso8859-1”指的是解码格式。默认的是“iso8859-1”,当存储格式为“UTF-8”的文件用“iso8859”进行解码时,自然会出现乱码。
3)<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> :这里的“UTF-8”指的是浏览器的解码格式。当前两种格式一致时,这里的格式便显得无关紧要了。存在的问题是,当一个页面嵌入另一个页面时,浏览器不能确认使用哪种解码格式,会出现乱码。
解决方式:将所有的编码,全部设置为“UTF-8”格式,彻底解决此种情况的乱码问题。
二、Post 方式提交表单出现的乱码问题。
1、问题背景:Tomcat 内部默认的编码格式为“iso8859-1”,以post方式提交表单时,如果没有设置提交的编码格式,则会以“iso8859-1”格式进行提交,接收参数时,却以“UTF-8”格式接收,就会出现乱码问题。
2、解决方式。
1)接收参数时,进行编码转换。如:
String userName= new String(request.getParameter("userName").getBytes("ISO-8859-1"),"utf-8")
2)在接收参数开始处,设置请求的编码。
request.setCharacterEncoding("UTF-8")
3)使用过滤器对所有的jsp进行处理。在web.xml 中加入过滤器:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
三、Get 方式提交表单出现的问题。
1、问题背景:Tomcat 内部默认的编码格式为“iso8859-1”,以get方式提交表单时,Tomcat 以“iso8859-1”对汉字进行编码,编码后追加到url。
接收参数时以“UTF-8”格式进行接收出现乱码。
2、解决方式:
1)接收参数时,进行编码转换。如:
String userName= new String(request.getParameter("userName").getBytes("ISO-8859-1"),"utf-8")
先以“ISO-88591-1”格式进行解码,然后以“UTF-8”方式进行编码。
2)修改Tomcat服务器配置server.xml文件中对HTTP协议的 Connector配置。
< Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8" />
四、数据库访问时的乱码问题(本段 摘录)
在使用JDBC连接MySQL数据库时,连接字符串写成如下形式可以避免一些中文问题:
jdbc://mysql://hostname:port/DBname?user=username&password=pwd&useUnicode=true&characterEncoding=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){
Stringresult=null;
if(src!=null){
try{
result = newString(src.getBytes("ISO-8859-1"),"utf-8");
}catch(Exception e){
result = null;
}
}
returnresult;
}
于是,在从数据库读出数据过后调用charConvert(rs.getString("colName")),这样就可以正常显示数据库中的中文数据了。
分享到:
相关推荐
html页面乱码问题总结,总结了常见的html乱码问题。
struts处理中文乱码问题总结struts处理中文乱码问题总结struts处理中文乱码问题总结struts处理中文乱码问题总结
Ajax uri 乱码问题总结
Java开发乱码问题解决方法: 以下是个人知道的方法汇总
本文档主要解决 Windows10+Qt5.8.0 中文编译乱码问题(包括代码设置的中文,编译输出乱码以及文件保存中文路径乱码等问题)。亲测有效。
中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析
中文乱码问题整理总结 通过平时开发实践,总结的乱码问题.
NULL 博文链接:https://yufeng-zhu.iteye.com/blog/1675446
web项目中中文乱码问题总结,几解决方法。
php开发过程中主要有五个方面可能会导致乱码。 一..HTML 页面转UTF-8 编码问题 二.PHP 页面转UTF-8 编码问题 三.MYSQL 数据库使用UTF-8 编码的问题 四.JS 相关的UTF-8 编码问题 五.FLASH 相关的UTF-8 编码问题 ...
最近发现乱码问题很烦,找了许多资料,自己总结了一些东西,主要是web页面的乱码,请大家指正
中文乱码处理问题总结,针对一些容易乱码的地方进行讲解。
主要介绍了java 中的乱码问题汇总相关资料,并附解决方案,出现乱码问题有编码与解码,字节流与字符流出现乱码,等其他情况,需要的朋友可以参考下
Loadrunner乱码问题处理方式总结
Java 生成 PDF 文件,解决中文乱码问题 Java 生成 PDF 文件,解决中文乱码问题是 Java 编程中常见的问题。解决这个问题的关键是正确地设置中文字体,以避免乱码问题。本文将通过一个完整的示例代码,详细讲解如何...
配置 Web.xml 解决中文乱码问题 本文主要讨论了在 Web 开发中遇到的中文乱码问题,并提供了一些解决方案。首先,需要确定中文乱码问题不是由浏览器引起的,然后讨论了 Tomcat 服务器配置和数据库 bean 配置中的一些...
JSP中文乱码问题解决总结,个人收集,一次放出,减少大家的查找时间。
在这个文件中,我们将对 ACCESS+ASP 中文乱码问题的解决方法进行总结和借鉴。 解决方法一:在每一页的开头加上 `<%@ CODEPAGE = "936" %>` 或 `<%@ LANGUAGE="VBSCRIPT" CODEPAGE="936"%>`。这可以将.asp 文件的...