共計 4056 個字符,預計需要花費 11 分鐘才能閱讀完成。
Mysql 中怎么查看編碼,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
一、
查看的字符集
show variables like character\_set\_%
輸出:
+————————–+——–+
| 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 |
+————————–+——–+
結合以下的編碼表我們發現當前的數據庫系統的編碼:
latin1_bin
西歐 (多語言), 二進制
binary
二進制
以上是我在 linux 環境中的查看的結果編碼集了。我現在 WIN 平臺上面查看編碼集結果如:
+————————–+——–+
| 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 |
+————————–+——–+
為什么會出現不一致的情況呢?在我本機上面是顯示的 UTF-8. 而在 LINUX 上面居然是
二、通過命令修改其編碼
創建數據庫指定數據庫的字符集
create database mydb character set utf-8;# 直接指定其編碼
直接通過命令進行修改
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;
修改完了之后再查詢
show variables like character\_set\_%
+————————–+——–+
| 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 |
+————————–+——–+
結果全部都調整修改成 UTF- 8 了!
修改完了之后我看 select * from address_address; 出現亂碼了!Django 也亂碼
三、解決數據導入導出的亂碼問題
#create database nginxdjango;
# use nginxdjango;
# show variables like character\_set\_%
#打印輸出居然是如下
+————————–+——–+
| 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 |
+————————–+——–+
依舊是 latin 編碼的。
OK。我將其編碼設置一下
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;
再查詢一下其編碼格式為:+————————–+——–+
| 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 |
+————————–+——–+
現在將數據導進來
source /python/django/sql/nginxdjango.sql;
其中的 nginxdjango.sql 其編碼也是 utf-8 格式的!
導進來 數據庫查看居然還是亂碼不過程序跑起來是正常了!
MySQL 字符集編碼的類型種類
gb2312_chinese_ci 和 gbk_chinese_ci 以及 gb2312_bin,gbk_bin 的區別
gb2312_chinese_CI : 只支持簡體中文
gb2312_BIN : 而 gb2312_bin 可以說是 gb2312_chinese_ci 的一個子集,
而且 gb2312_BIN 是二進制存儲. 區分大小寫數據庫編碼格式就意義不一樣了
gbk_chinese_CI 支持簡體中文和繁體
gbk_bin 解釋同 gb2312_BIN 對應 gbk_chinese_CI
PS:GBK 包括了簡體與繁體兩種類型
新篇:2010-03-09
MySQL 中默認字符集的設置有四級: 服務器級,數據庫級,表級。最終是字段級 的字符集設置。注意前三種均為默認設置,并不代碼你的字段最終會使用這個字符集設置。所以我們建議要用 show create table table ; 或 show full fields from tableName; 來檢查當前表中字段的字符集設置。
MySQL 中關于連接環境的字符集設置有 Client 端,connection, results 通過這些參數,MySQL 就知道你的客戶端工具用的是什么字 符集,結果集應該是什么字符集。這樣 MySQL 就會做必要的翻譯,一旦這些參數有誤,自然會導致字符串在轉輸過程中的轉換錯誤?;旧?99% 的亂碼由些造 成。
1. 數據庫表中字段的字符集設置。show create table TableName 或 show full columns from tableName
mysql show create table t1;
mysql show full columns from t1; 查看列的編碼類型
3. 查看數據庫的編碼格式
show create database test;
輸出:CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */
2. 當前聯接系統參數 show variables like char%
mysql show variables like char%
1. 中文,請確保 表中該字段的字符集為中文兼容:
big5 | Big5 Traditional Chinese
gb2312 | GB2312 Simplified Chinese
gbk | GBK Simplified Chinese
utf8 | UTF-8 Unicode
[其它補充]
修改數據庫的字符集
mysql use mydb
mysql alter database mydb character set utf-8;
創建數據庫指定數據庫的字符集
mysql create database mydb character set utf-8;
2010-05-02 新添加進來
show variables like character\_set\_% 所查看到了幾項中其中有這三項是受客戶端影響
character_set_client
character_set_connection
character_set_results
看完上述內容,你們掌握 Mysql 中怎么查看編碼的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!