1,关于乱码产生的问题
1,IDE环境配置,载相应的IDE配置文件中设置为默认的UTF8字符集
2, 页面乱码 ,载页面中设置默认字符集,例如jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
3,tomcat编码
打开 tomcat安装目录下的 bin\setenv.bat ,该文件通常不存在,新建之, 添加如下内容
set JAVA_OPTS=-Dfile.encoding=UTF-8
打开conf\server.xml, 在8080端口所属的Connector节点,添加URIEncoding,可解决大部分GET请求中文乱码的问题
URIEncoding="UTF-8"
4,源码的编码
通常情况下, 文件本身的编码,取决于新建文件时,IDE或Project的编码.
另外一个隐藏的编码,是maven/ant编译java源文件时使用的编码
maven的配置如下
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
5,数据库编码
通常来说,如果其他4码解决了,那大部分情况下是mysql会出现编码问题,
mysql有4个编码
Server characterset: utf8 // 服务器字节集
Db characterset: utf8 // 当前数据集字节集
Client characterset: utf8 // 客户端字节集
Conn. characterset: utf8 // 当前连接的字节集
修改my.ini的mysqld小节,设置服务器字符集,是最佳解决方式
[mysqld]
character-set-server = utf8
然而,对于现有系统,全局修改的风险比较大,所以,可以在客户端解决,即jdbcurl上做配置
jdbc:mysql://127.0.0.1/nutzdemo?useUnicode=true&characterEncoding=UTF-8