查看MySQL編碼
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!專注中小微企業(yè)官網(wǎng)定制,成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
SHOW VARIABLES LIKE 'char%';
因?yàn)楫?dāng)初安裝時(shí)指定了字符集為UTF8,所以所有的編碼都是UTF8。
?character_set_client:你發(fā)送的數(shù)據(jù)必須與client指定的編碼一致?。?!服務(wù)器會(huì)使用該編碼來(lái)解讀客戶端發(fā)送過(guò)來(lái)的數(shù)據(jù);
?character_set_connection:通過(guò)該編碼與client一致!該編碼不會(huì)導(dǎo)致亂碼!當(dāng)執(zhí)行的是查詢語(yǔ)句時(shí),客戶端發(fā)送過(guò)來(lái)的數(shù)據(jù)會(huì)先轉(zhuǎn)換成connection指定的編碼。但只要客戶端發(fā)送過(guò)來(lái)的數(shù)據(jù)與client指定的編碼一致,那么轉(zhuǎn)換就不會(huì)出現(xiàn)問(wèn)題;
?character_set_database:數(shù)據(jù)庫(kù)默認(rèn)編碼,在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),如果沒(méi)有指定編碼,那么默認(rèn)使用database編碼;
?character_set_server:MySQL服務(wù)器默認(rèn)編碼;
?character_set_results:響應(yīng)的編碼,即查詢結(jié)果返回給客戶端的編碼。這說(shuō)明客戶端必須使用result指定的編碼來(lái)解碼;
控制臺(tái)編碼
修改character_set_client、character_set_results、character_set_connection為GBK,就不會(huì)出現(xiàn)亂碼了。但其實(shí)只需要修改character_set_client和character_set_results。
控制臺(tái)的編碼只能是GBK,而不能修改為UTF8,這就出現(xiàn)一個(gè)問(wèn)題??蛻舳税l(fā)送的數(shù)據(jù)是GBK,而character_set_client為UTF8,這就說(shuō)明客戶端數(shù)據(jù)到了服務(wù)器端后一定會(huì)出現(xiàn)亂碼。既然不能修改控制臺(tái)的編碼,那么只能修改character_set_client為GBK了。
服務(wù)器發(fā)送給客戶端的數(shù)據(jù)編碼為character_set_result,它如果是UTF8,那么控制臺(tái)使用GBK解碼也一定會(huì)出現(xiàn)亂碼。因?yàn)闊o(wú)法修改控制臺(tái)編碼,所以只能把character_set_result修改為GBK。
?修改character_set_client變量:set character_set_client=gbk;
?修改character_set_results變量:set character_set_results=gbk;
設(shè)置編碼只對(duì)當(dāng)前連接有效,這說(shuō)明每次登錄MySQL提示符后都要去修改這兩個(gè)編碼,但可以通過(guò)修改配置文件來(lái)處理這一問(wèn)題:配置文件路徑:D:\Program Files\MySQL\MySQL Server 5.1\ my.ini
mysql查看表的字符集的方法:執(zhí)行【show table status from 庫(kù)名 like 表名;】語(yǔ)句即可。如果要查看庫(kù)的字符集,可以執(zhí)行【show database status from 庫(kù)名 like 表名;】語(yǔ)句。
查看表的字符集
show table status from 庫(kù)名 like 表名;
查看庫(kù)的字符集
show database status from 庫(kù)名 like 表名;
查看表中所有列的字符集
show full columns from 表名;
1、查看數(shù)據(jù)庫(kù)編碼格式
mysql?show?variables?like?'character_set_database'
2、查看數(shù)據(jù)表的編碼格式
mysql?show?create?table?表名;
3、創(chuàng)建數(shù)據(jù)庫(kù)時(shí)指定數(shù)據(jù)庫(kù)的字符集
mysqlcreate?database?數(shù)據(jù)庫(kù)名?character?set?utf8;
4、創(chuàng)建數(shù)據(jù)表時(shí)指定數(shù)據(jù)表的編碼格式
create?table?tb_books?(
name?varchar(45)?not?null,
price?double?not?null,
bookCount?int?not?null,
author?varchar(45)?not?null?)?default?charset?=?utf8;
5、修改數(shù)據(jù)庫(kù)的編碼格式
mysqlalter?database?數(shù)據(jù)庫(kù)名?character?set?utf8;
6、修改數(shù)據(jù)表格編碼格式
mysqlalter?table?表名?character?set?utf8;
7、修改字段編碼格式
mysqlalter?table?表名?change?字段名?字段名?類型?character?set?utf8;
mysqlalter?table?user?change?username?username?varchar(20)?character?set?utf8?not?null;
基本上現(xiàn)在的字符集 MySQL 都支持,查看 MySQL 支持的字符集列表, 有兩種方法:
1. SQL 語(yǔ)句
2. 查看元數(shù)據(jù)字典表
查詢結(jié)果:
1)第一列代表字符集名字;
2)第二列表示字符集排序規(guī)則;
3)第三列表示字符集描述;
4)第四列表示字符集編碼的最大字節(jié)數(shù)。
首先進(jìn)入dos模式下輸入:
1.cd C:\Program Files\MySQL\MySQL Server 5.5\bin
2.mysql -h127.0.0.1
(你要訪問(wèn)的主機(jī)的地址) -uroot(用戶名) -proot(密碼)
3.show variables like 'character%';
這樣就完成了對(duì)你的mysql里的編碼格式的查看了,如果你想修改,繼續(xù)執(zhí)行下面的步驟:
打開(kāi)mysql安裝目錄,里面有個(gè)my.ini文件,
打開(kāi)這個(gè)文件,里面有兩處字符集的設(shè)置,默認(rèn)是拉丁,
建議你所想改的,如:utf8或gbk
然后啟動(dòng)mysql服務(wù),
以后創(chuàng)建的數(shù)據(jù)庫(kù)默認(rèn)字符集就是ok了
(重啟時(shí),打開(kāi)MySQLAdministrator的Service Control進(jìn)行操作就可以了。)
default-character-set=utf82單獨(dú)設(shè)置某個(gè)數(shù)據(jù)庫(kù):
alter
database
testdb
character
set
utf8;
查看mysql支持的編碼:
show
character
set;也可以使用如下方法查看編碼:
show
status
mysql
-uroot
use
your
database
status
----------------------------------
server
characterset:
utf8
db
characterset:
utf8
client
characterset:
utf8
conn.
characterset:
utf8
tcp
port:
3306
uptime:
53
sec
----------------------------------
如果
client
為utf8
,
改為:
set
char
set
'gbk';
查看數(shù)據(jù)庫(kù)編碼:show
create
database
your_db_name