mysql字符集转化关系

来源:互联网 发布:matlab 把矩阵归一化 编辑:程序博客网 时间:2024/04/30 06:06

1.     字符集的转换关系

表的字符集(其实是字段的字符集)、客户端字符集(set names xxx的这个字符集)、文字的字符集(可以理解为在web界面中的charset=xxx这个字符集,或者是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   部分正常


原创粉丝点击