mysql中文专栏

时间:2011-01-25 11:00:18

标签: php mysql unicode phpmyadmin

要在mysql中存储中文字符,建议将它们存储为UTF8或UCS2吗? (我正在使用char和varchar)

另外,我已经看到UTF8使用4个字节的数据来存储值。 UCS2使用了多少?

1 个答案:

答案 0 :(得分:0)

  

我已经看到UTF8使用4个字节的数据来存储值。 UCS2使用了多少?

UTF-8由1到3个字节的可变长度字符组成,UCS2(UTF-16)是每个字符固定的2个字节。

  

要在mysql中存储中文字符,建议将它们存储为UTF8或UCS2吗?

我没有中文字符的经验,但这个SO问题的最佳答案很好地回答了基本问题:Difference between UTF-8 and UTF-16?

从那里:

  

大多数合理的字符,如拉丁语,西里尔语,中文,日语,可以用2个字节表示。除非需要非常奇特的字符,否则这意味着UTF-16的16位子集可以用作固定长度编码,从而加快索引速度。

对于中文字符来说,UCS-2似乎可以节省存储空间。如果这是一个Web项目,我会倾向于使用UTF-8,因为它是更广泛的编码,是Web世界的标准。这里有UTF-8的其他参数:Should UTF-16 be considered harmful?


mySQL参考:9.1.10. Unicode Support