1. 程式人生 > >mysql中文亂碼解決方式

mysql中文亂碼解決方式

方式 sqlserver 查看 fadein tin 方案 tab views 編碼

近期項目使用到mysql。卻突然出現了中文亂碼問題。嘗試了多種方案,最終解決亂碼問題,總結一下解決方式,給遇到同樣問題的人一點參考。

中文亂碼的原因

1.安裝mysqlserver的時候編碼集設定有問題
2.創建數據庫的時候編碼集設定有問題
3.創建表的時候編碼集設定有問題
4.client的編碼集設定有問題
能夠通過命令查看編碼集:

show variables like "%char%";

技術分享

經常使用編碼集

1.java中的經常使用編碼UTF-8;GBK;GB2312;ISO-8859-1;
2.相應mysql數據庫中的編碼utf8;gbk;gb2312;latin1
建議使用utf8格式,utf8能夠兼容世界上全部字符

mysql編碼集設置命令

註意:假設不是通過my.ini配置文件設置的內容,僅僅在當前狀態下有效,當重新啟動數據庫服務後失效。所以假設想要不出現亂碼僅僅有改動my.ini文件,數據庫編碼能夠在創建數據庫時候指定UTF8

mysql設置編碼命令

SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;
SET collation_connection = utf8_bin; SET collation_database = utf8_bin; SET collation_server = utf8_bin;

技術分享

設定mysqlserver編碼

設定mysqlserver的編碼。須要又一次安裝mysql服務,步驟例如以下:
1.打開命令提示符(管理員)。假設不以管理員身份執行可能會出現錯誤
2.進入mysql安裝文件夾下的bin文件夾
3.關閉服務

net stop mysql

4.卸載

mysqld -remove

5.改動mysql的配置文件。在mysql安裝文件夾下找到my.ini文件
技術分享


改動配置文件,在配置文件裏增加

character-set-server=utf8

貼出我的配置文件

[mysqld]
#設置字符集
character-set-server=utf8 
#這裏把路徑改改為你的mysql安裝文件夾
basedir=D:\develeper\mysql5.6 
datadir=D:\develeper\mysql5.6\data

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

我的配置文件下載地址:http://pan.baidu.com/s/1qW3hqri
技術分享

6.安裝

mysqld -install

7.啟動服務

net start mysql

技術分享

創建時指定字符集

1.創建數據庫時設定字符集

create database testdb default character set utf8;#建立數據庫

2.創建表時設定字符集

use testdb;
create table student(
    id char(50) primary key,
    sname varchar(100) not null,
    age int 

)engine=innodb default charset=utf8;

3、client字符集的設定。通過連接字符串來設定。

jdbc:mysql://localhost:3306/testdb?

characterEncoding=utf8

mysql中文亂碼解決方式