表的字符集(其實是字段的字符集)、客戶端字符集(set names ***的這個字符集)、文字的字符集(可以理解為在web介面中的charset=***這個字符集,或者是ssh、terminal終端的字符集下輸入的文字的格式)有如下的關係:
(1)、當表的字符集是gbk或者utf8時,客戶端和文字的字符集同時為gbk或者同時為utf8時,插入和查詢都是正常的。
(2)、當表的字符集和客戶端的字符集同時為latin1時,文字的字符集為gbk或者utf8時,插入和查詢都是正常的(這個也就是為什麼mysql4.1之前資料庫只支援latin1字元,而我們插入gbk或者utf8文字時是正常的)。
(3)、當表的字符集和客戶端的字符集同時為gbk,文字的字符集為utf8時,插入的中文字個數為偶數時正常,奇數時最後乙個字異常(由於gbk儲存中文時是2個位元組,utf8是3個位元組,如果儲存的文字個數是奇數,會丟掉最後的乙個位元組)。
如下圖:
表 客戶端 文字 結果
gbk gbk gbk 正常
gbk utf8 utf8 正常
utf8 gbk gbk 正常
utf8 utf8 utf8 正常
latin1 latin1 gbk 正常
latin1 latin1 utf8 正常
gbk gbk utf8 部分正常
字符集轉化 curses
linux字串轉化使用方法 第一步 iconv open 目標字符集,源字符集 第二步 iconv 實現字符集轉化 第三步 iconv close 關閉iconv 命令 iconv list 顯示系統中支援的字符集 makefile suffixes c o cc gcc srcs mydaemon...
Linux 字符集轉化
命令列 iconv list 檢視linux作業系統支援的字符集 iconv open 設定字符集轉化 iconv t iconv open const char tocode,const char fromcode 引數tocode目標字符集的字串 引數fromcode源字符集的字串 函式成功返回...
字符集轉化 curses
linux字串轉化使用方法 第一步 iconv open 目標字符集,源字符集 第二步 iconv 實現字符集轉化 第三步 iconv close 關閉iconv 命令 iconv list 顯示系統中支援的字符集 makefile suffixes c o cc gcc srcs mydaemon...