我之前hl学长自己整理的pdf内容,觉得不错就弄到csdn上了。
使用Eclipse开发web项目时,经常会出现中文乱码问题,所有需要将全局编码统一为UTF-8。
常见的编码有:
1.ASCII码:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显 示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
2.ISO88591:对于ASCII的扩展,涵盖很多西欧语言字符,单字节编码
3.GB2312:双字节中文编码集,基本涵盖汉字
4.GBK:对于GB2312的扩展,与GB2312兼容
5.UTF8/16:Unicode统一码,也是使用最多的编码,不论什么字符都可以用两个字节表 示,简化高效,由ISO创建,试图翻译所有世界上的语言
WEB项目中常见的编码设置含义
- pageEncoding=“GBK” //通知JSP编译器,将jsp文件转换为java文件的编码,也就是jsp文
件自身的编码 - charset=“UTF‐8” //设置服务器响应时重新编码(字节到字符)使用的编码集,即服务器
发送给客户端内容的编码 - request.setCharacterEncoding(“gb2312”); //设置接收请求内容使用的编码集
- response.setContentType(“text/xml;charset=gb2312”); //指定 HTTP 响应的编
码,同时指定了浏览器显示的编码 - response.setCharacterEncoding(“gb2312”);//设置HTTP 响应的编码,如果之前使用response.setContentType设置了编码格式,则使用response.setCharacterEncoding指定的编码格式覆盖之前的设置
全局编码统一需要做以下工作:
- 设置workspace编码格式为UTF8
- 设置html、CSS、js、xml、java、 properties文件的编码为UTF8
- 设置tomcat中server.xml的URIEncoding编码为UTF8
- 设置数据库的编码为UTF8
修改过程:
-
Eclipse→Window→Preferences→General→Workspace→Text file encoding(改成UTF8)
-
Eclipse→Window→Preferences→General→Content Types→Text( 下 面的 html、CSS、js、xml、java、 properties 等都改成UTF8)
-
Eclipse→Window→Preferences→Web(下面的 html、CSS、jsp等都改成UTF 8)
-
Eclipse→Window→Preferences→XML(下面的XML Files 改成UTF8)
-
修改tomcat中server.xml的URIEncoding
<Connector URIEncoding="UTF‐8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
<Connector URIEncoding="UTF‐8" port="8009" protocol="AJP/1.3" redirectPort="8443"/>
- 数据库在创建时指定编码为UTF8即可
代码解决中文乱码问题:
- HTML:
<meta charset="UTF‐8">
- jsp:
<%@ page language="java" contentType="text/html; charset=UTF‐8" pageEncoding="UTF‐8"%>
<meta http‐equiv="Content‐Type" content="text/html; charset=UTF‐8">
<% request.setCharacterEncoding("UTF‐8"); %>
<%response.setCharacterEncoding("UTF‐8"); response.setContentType("text/html;charset=UTF‐8");%>
- mysql:
url="jdbc:mysql://localhost:3306/DB?useUnicode=true & characterEncoding=UTF8"
如果是xml文件解析的话,注意连接串中的 &需要转义成 &