hibernate插入中文到mysql資料庫亂碼

神巧合發表於2016-08-28

1. 更改mysql資料庫字符集

linux下修改/etc/my.cnf

windows下修改my.ini

[mysqld]

character_set_server=utf8      #這個是我新增的
init_connect=`SET NAMES utf8`
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
 
[mysqld_safe]
default-character-set = utf8    #這個是我新增的
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
[client]
default-character-set = utf8      #這個是我新增的
 
[mysql.server]
default-character-set = utf8      #這個是我新增的
 
[mysql]
default-character-set = utf8      #這個是我新增的
 

mysql> show variables like `%char%`;

| character_set_client      | utf8                      |
 
| character_set_connection  | utf8                      |
 
| character_set_database    | utf8                      |
 
| character_set_filesystem  | binary                    |
 
| character_set_results      | utf8                      |
 
| character_set_server      | utf8                      |
 
| character_set_system    | utf8                      |
 
| character_sets_dir        | /usr/share/mysql/charsets/    |

2 資料來源url連線配置

在xml配置檔案中配置資料庫url時,要使用&的轉義字元也就是&amp

<property name="url" value="jdbc:mysql://localhost:3306/customer?useUnicode=true&amp;characterEncoding=UTF8"</property>

3.Tomcat

tomcat預設的字符集是ISO-8829-1,修改成utf-8

修改server.xml檔案

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>

utf8 和 UTF-8 在使用中的區別

總結:【只有在MySQL中可以使用“utf-8”的別名“utf8”,但是在其他地方一律使用大寫“UTF-8”。】

本文出自 “點滴積累” 部落格,請務必保留此出處http://tianxingzhe.blog.51cto.com/3390077/1672424


相關文章