程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL中文亂碼解決

MySQL中文亂碼解決

編輯:MySQL綜合教程

MySQL中文亂碼解決


測試環境:服務端和客戶端均為win7,MySql數據庫、表字符集為utf-8,字段字符集與表一致。

1、使用mysql命令進行操作時的亂碼問題解決。

(1)設置當前字符集

set names gbk

(2)修改單個字符集參數

使用命令show variables like 'char%',查看所有字符集變量。

+--------------------------+----------------------------------------+
| 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 | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql-5.6.25-winx64\share\charsets\ |
+--------------------------+----------------------------------------+

修改單個字符集:

set character_set_results=gbk

注意:該方法設置的參數在服務器重啟後失效。

2、mysqldump導出時亂碼問題解決

(1)導出有兩種情況:一是導出表結構,二是導出表結構和數據。

導出全表:

mysqldump -uroot -p [databasename] --table [tablename]

只導出表結構:

mysqldump -uroot -p [databasename] --table [tablename] -d

(2)實驗

經測試,在控制台環境,導出表結構時,無論怎麼設置--default-character-set參數,均無法正常顯示字段注釋中的中文,命令如下:

mysqldump -uroot -p --default-character-set=gbk test --table t_data

但表數據中的中文可以正常顯示(通過設置--default-character-set=gbk)。

但是,若導出為文件,則可以正常顯示,命令示例如下:

mysqldump -uroot -p --default-character-set=gbk mydb --table t_data -d > t_data.sql

有趣的是,不管--default-character-set設置為何值(gbk,utf8,latin1)均能正常顯示,在控制台顯示亂碼和控制台本身有一定的關系。

(3)總結

在控制台環境,表結構中的中文字段注釋總是不能正常顯示,使用管道輸出到文件,則總能正常顯示(使用UltraEdit打開)。

表數據中必須通過參數設置--default-character-set=gbk來控制正常輸出中文,包括控制台顯示或用管道輸出到文件。

也就是說--default-character-set=gbk 僅對表數據的編碼處理生效,對表結構字段注釋中的中文無效。

參考:

1、查看創建表使用的字符集:

show create table [tableName]

2、查看表字段使用的字符集:

show full columns from [tableName]

 

3、查看表

show tables;

4、查看表信息

desc [tablename]

5、查看數據庫

show databases;

6、查看數據庫信息

show create database test;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved