《Mysql必讀mysql數(shù)據(jù)庫(kù)編碼與字符集的查看方法》要點(diǎn):
本文介紹了Mysql必讀mysql數(shù)據(jù)庫(kù)編碼與字符集的查看方法,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
MYSQL學(xué)習(xí)一、查看mysql數(shù)據(jù)庫(kù)的字符集
?
MYSQL學(xué)習(xí)show variables like 'character_set_%';
MYSQL學(xué)習(xí)輸出:
+--------------------------+--------+
MYSQL學(xué)習(xí)| variable_name??????????? | value? |
MYSQL學(xué)習(xí)+--------------------------+--------+
MYSQL學(xué)習(xí)| character_set_client???? | latin1 |
MYSQL學(xué)習(xí)| character_set_connection | latin1 |
MYSQL學(xué)習(xí)| character_set_database?? | latin1 |
MYSQL學(xué)習(xí)| character_set_filesystem | binary |
MYSQL學(xué)習(xí)| character_set_results??? | latin1 |
MYSQL學(xué)習(xí)| character_set_server???? | latin1 |
MYSQL學(xué)習(xí)| character_set_system???? | utf8?? |
MYSQL學(xué)習(xí)+--------------------------+--------+
MYSQL學(xué)習(xí)結(jié)合以下的編碼表發(fā)現(xiàn)當(dāng)前的數(shù)據(jù)庫(kù)系統(tǒng)的編碼:
latin1_bin
西歐(多語(yǔ)言), 二進(jìn)制
binary
二進(jìn)制
MYSQL學(xué)習(xí)以上是在linux環(huán)境中的查看的結(jié)果編碼集了.
現(xiàn)在win平臺(tái)上面查看編碼集結(jié)果如:
?
MYSQL學(xué)習(xí)+--------------------------+--------+
MYSQL學(xué)習(xí)| variable_name??????????? | value? |
MYSQL學(xué)習(xí)+--------------------------+--------+
MYSQL學(xué)習(xí)| character_set_client???? | utf8?? |
MYSQL學(xué)習(xí)| character_set_connection | utf8?? |
MYSQL學(xué)習(xí)| character_set_database?? | utf8?? |
MYSQL學(xué)習(xí)| character_set_filesystem | binary |
MYSQL學(xué)習(xí)| character_set_results??? | utf8?? |
MYSQL學(xué)習(xí)| character_set_server???? | utf8?? |
MYSQL學(xué)習(xí)| character_set_system???? | utf8?? |
MYSQL學(xué)習(xí)+--------------------------+--------+
MYSQL學(xué)習(xí)為什么會(huì)出現(xiàn)不一致的情況呢?
在本機(jī)上面是顯示的utf-8.而在linux上面居然是latin1.
?
二、通過(guò)命令修改其編碼
MYSQL學(xué)習(xí)創(chuàng)建數(shù)據(jù)庫(kù)指定數(shù)據(jù)庫(kù)的字符集
?
MYSQL學(xué)習(xí)直接通過(guò)命令進(jìn)行修改:
?
MYSQL學(xué)習(xí)set character_set_client=utf8;
MYSQL學(xué)習(xí)set character_set_connection=utf8;
MYSQL學(xué)習(xí)set character_set_database=utf8;
MYSQL學(xué)習(xí)set character_set_results=utf8;
MYSQL學(xué)習(xí)set character_set_server=utf8;
MYSQL學(xué)習(xí)修改完了之后再查詢:
?
MYSQL學(xué)習(xí)show variables like 'character_set_%';
MYSQL學(xué)習(xí)+--------------------------+--------+
MYSQL學(xué)習(xí)| variable_name??????????? | value? |
MYSQL學(xué)習(xí)+--------------------------+--------+
MYSQL學(xué)習(xí)| character_set_client???? | utf8?? |
MYSQL學(xué)習(xí)| character_set_connection | utf8?? |
MYSQL學(xué)習(xí)| character_set_database?? | utf8?? |
MYSQL學(xué)習(xí)| character_set_filesystem | binary |
MYSQL學(xué)習(xí)| character_set_results??? | utf8?? |
MYSQL學(xué)習(xí)| character_set_server???? | utf8?? |
MYSQL學(xué)習(xí)| character_set_system???? | utf8?? |
MYSQL學(xué)習(xí)+--------------------------+--------+
MYSQL學(xué)習(xí)結(jié)果全部都調(diào)整修改成utf-8了!
MYSQL學(xué)習(xí)修改完了之后我看select * from address_address; 出現(xiàn)亂碼了!django也亂碼
MYSQL學(xué)習(xí)三、辦理數(shù)據(jù)導(dǎo)入導(dǎo)出的亂碼問(wèn)題
?
MYSQL學(xué)習(xí)#create database nginxdjango;
# use nginxdjango;
# show variables like 'character_set_%';
MYSQL學(xué)習(xí)#打印輸出
+--------------------------+--------+
| variable_name??????????? | value? |
+--------------------------+--------+
MYSQL學(xué)習(xí)| character_set_client???? | latin1 |
MYSQL學(xué)習(xí)| character_set_connection | latin1 |
MYSQL學(xué)習(xí)| character_set_database?? | latin1 |
MYSQL學(xué)習(xí)| character_set_filesystem | binary |
MYSQL學(xué)習(xí)| character_set_results??? | latin1 |
MYSQL學(xué)習(xí)| character_set_server???? | latin1 |
MYSQL學(xué)習(xí)| character_set_system???? | utf8?? |
MYSQL學(xué)習(xí)+--------------------------+--------+
MYSQL學(xué)習(xí)依舊是latin編碼的.
MYSQL學(xué)習(xí)將其編碼做如下設(shè)置:
?
MYSQL學(xué)習(xí)再查詢其編碼格式為:
?
MYSQL學(xué)習(xí)現(xiàn)在將數(shù)據(jù)導(dǎo)進(jìn)來(lái)
source /python/django/sql/nginxdjango.sql;
其中的nginxdjango.sql 其編碼也是utf-8 格式的!
導(dǎo)進(jìn)來(lái) 數(shù)據(jù)庫(kù)查看居然還是亂碼不過(guò)程序跑起來(lái)是正常了!
MYSQL學(xué)習(xí)mysql字符集編碼的類型種類
gb2312_chinese_ci和gbk_chinese_ci以及gb2312_bin,gbk_bin的區(qū)別
gb2312_chinese_ci : 只支持簡(jiǎn)體中文
gb2312_bin?? :而gb2312_bin可以說(shuō)是gb2312_chinese_ci的一個(gè)子集,
MYSQL學(xué)習(xí)而且gb2312_bin是二進(jìn)制存儲(chǔ).區(qū)分大小寫數(shù)據(jù)庫(kù)編碼格式就意義不一樣了
MYSQL學(xué)習(xí)gbk_chinese_ci?? 支持簡(jiǎn)體中文和繁體
MYSQL學(xué)習(xí)gbk_bin?? 解釋同gb2312_bin???? 對(duì)應(yīng)gbk_chinese_ci
MYSQL學(xué)習(xí)ps:gbk包含了簡(jiǎn)體與繁體兩種類型
?
mysql中默認(rèn)字符集的設(shè)置有四級(jí):服務(wù)器級(jí),數(shù)據(jù)庫(kù)級(jí),表級(jí) .最終是字段級(jí) 的字符集設(shè)置.注意前三種均為默認(rèn)設(shè)置,并不代碼你的字段最終會(huì)使用這個(gè)字符集設(shè)置.所以我們建議要用show create table table ; 或show full fields from tablename; 來(lái)檢查當(dāng)前表中字段的字符集設(shè)置.
MYSQL學(xué)習(xí)mysql 中關(guān)于連接環(huán)境的字符集設(shè)置有? client端,connection, results 通過(guò)這些參數(shù),mysql就知道你的客戶端工具用的是什么字 符集,結(jié)果集應(yīng)該是什么字符集.這樣mysql就會(huì)做必要的翻譯,一旦這些參數(shù)有誤,自然會(huì)導(dǎo)致字符串在轉(zhuǎn)輸過(guò)程中的轉(zhuǎn)換錯(cuò)誤.基本上99%的亂碼由些造 成.
MYSQL學(xué)習(xí)1,數(shù)據(jù)庫(kù)表中字段的字符集設(shè)置 .
?
MYSQL學(xué)習(xí)2,查看數(shù)據(jù)庫(kù)的編碼格式
?
MYSQL學(xué)習(xí)3,當(dāng)前聯(lián)接系統(tǒng)參數(shù)
?
MYSQL學(xué)習(xí)1. 中文,請(qǐng)確保 表中該字段的字符集為中文兼容:
?big5???? | big5 traditional chinese
?gb2312?? | gb2312 simplified chinese
?gbk????? | gbk simplified chinese
?utf8???? | utf-8 unicode
[其它補(bǔ)充]
修改數(shù)據(jù)庫(kù)的字符集
?
MYSQL學(xué)習(xí)創(chuàng)建數(shù)據(jù)庫(kù)指定數(shù)據(jù)庫(kù)的字符集
?
MYSQL學(xué)習(xí)而這三項(xiàng)是可以通過(guò)set names utf8|set names gbk來(lái)設(shè)置的.
只是說(shuō)明當(dāng)前連接的客戶端的編碼情況并沒有影響到數(shù)據(jù)庫(kù)服務(wù)器自己的編碼情況.
歡迎參與《Mysql必讀mysql數(shù)據(jù)庫(kù)編碼與字符集的查看方法》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/7441.html