mysql 支持中文

mysql數據庫默認的編碼是:Latin1,要想支持中文需要修改爲gbk/utf8的編碼格式。

1、以root管理員身份查看數據編碼格式。

登陸命令:>mysql -u root –p 輸入密碼後如下命令查看數據編碼格式:

show variables like 'character%';

查詢結果如下:

+--------------------------+----------------------------+ 

| Variable_name | Value | 

+--------------------------+----------------------------+ 

| character_set_client | latin1 | 

| character_set_connection | latin1 | 

| character_set_database | latin1 | 

| character_set_filesystem | binary | 

| character_set_results | latin1 | 

| character_set_server | latin1 | 

| character_set_system | utf8 | 

| character_sets_dir | /usr/share/mysql/charsets/ | 

+--------------------------+----------------------------+

通過查詢結果顯示可以看出 數據庫編碼爲拉丁語,需要修改爲gbk或utf8.

character_set_client爲客戶端編碼方式;

character_set_connection爲建立連接使用的編碼;

character_set_database數據庫的編碼;

character_set_results結果集的編碼;

character_set_server數據庫服務器的編碼;

只要保證以上五個採用的編碼方式一樣,就不會出現亂碼問題。

2、修改數據庫編碼的步驟:

1)停止mysql服務。

2)修改mysql配置文件。

windows:安裝路徑下的:my.ini

linux:路徑一般爲:/etc/mysql/my.cnf

3)找到客戶端配置[client] 在下面添加

default-character-set=utf8 默認字符集爲utf8 

4)在找到[mysqld] 添加 

default-character-set=utf8 默認字符集爲utf8 

init_connect='SET NAMES utf8' (設定連接mysql數據庫時使用utf8編碼,以讓mysql數據庫爲utf8運行)

5)修改好後,重新啓動mysql查看當前數據編碼格式。

>show variables like 'character%'; 

+--------------------------+----------------------------+ 

| Variable_name | Value | 

+--------------------------+----------------------------+ 

| 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/ | 

+--------------------------+----------------------------+

3、MySQL指定編碼的方式是非常靈活並多樣化的,可以指定表級別的編碼,行級別編碼,甚至可以指定字段級別的編碼。

以下示例給出創建數據庫時指定編碼的兩種方式:

1)CREATE  DATABASE  ms_db  CHARACTER SET  utf8  COLLATE utf8_general_ci;

2)create  database  if  not  exists  netctoss  default character set utf8;

3)如果你採用的是外部接入的方式,可以在連接中確定請求的編碼格式如:jdbc:mysql://localhost:3306 /mysql?useUnicode=true&characterEncoding=utf-8(注意:不要出現任何空格,否則出錯)

4、若Commandline終端查看數據顯示亂碼則執行如下命令:

set names gbk(注意,不是UTF-8) 來修改窗口級別的編碼格式解決終端亂碼問題。

注意:set names gbk只可以修改character_set_client、character_set_connection、 character_set_results的編碼方式,並且這種修改是窗口級別的,只針對當前窗口有效,打開新窗口修改無效,數據庫底層的編碼方式不會被改變,插入數據後還是以utf8編碼方式存儲。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章