帶您學(xué)習(xí)DB2字符集和MySql字符集
DB2字符集相信大家都有一定的認(rèn)識,那么,DB2字符集對于DB2數(shù)據(jù)庫來說,重要性在哪里呢?下面以MySql和DB2為例,解釋一下數(shù)據(jù)庫的字符集。
創(chuàng)建數(shù)據(jù)庫時或建表時有默認(rèn)的字符集,
MySql中Sql代碼
- CREATE TABLE fuck (
- id varchar(225) DEFAULT NULL
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8
- CREATE TABLE fuck (
- id varchar(225) DEFAULT NULL
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8
DB2中Sql代碼
- create database ktzpdbusing codeset UTF8 territory cn
- create database ktzpdb using codeset UTF8 territory cn
這樣就把數(shù)據(jù)庫或每張表的字符編碼設(shè)為utf8了,當(dāng)我們直接用mysql或db2自帶的命令窗口去插入中文時,卻不能插入,這就是命令窗口的編碼問題了。
一般命令窗口的字符編碼應(yīng)該為gbk,這樣我們才能正常的插入和顯示。如Mysql中可以用配置文件my.ini制定gbk,也可以在窗口中打set names gbk;
DB2中在命令窗口中打 db2set DB2CODEPAGE=1386。當(dāng)我們敲中文插數(shù)據(jù)進(jìn)去時,實(shí)際上表數(shù)據(jù)就是以utf8存儲的,而在命令窗口下由于設(shè)置成了gbk,我們就能正??吹街形牧?。
當(dāng)用mysql中 source d:/insertData.sql或用db2中的db2 -tf d:/**.sql 這種執(zhí)行sql文件的命令時,該sql必須和當(dāng)前命令窗口的字符編碼一致,就是上述的gbk,可用記事本另存為ANSI即行。如果sql編碼不一致,如是utf8,那么客戶端的gbk不能識別文件中的utf8編碼格式,是不能存儲中文或其他非英文字符的。
總之,如果用了自帶的命令窗口,MySql的導(dǎo)入文件的編碼必須和命令窗口的字符編碼一致,否則里面的數(shù)據(jù)中的中文字符等無法正常識別,而DB2的命令窗口一般還是設(shè)成1386,即GBK就行,文件也是ANSI格式的,不會出錯!
【編輯推薦】
DB2數(shù)據(jù)導(dǎo)入的四點(diǎn)注意事項(xiàng)