要在mysql中存储中文字符,建议将它们存储为UTF8或UCS2吗? (我正在使用char和varchar)
另外,我已经看到UTF8使用4个字节的数据来存储值。 UCS2使用了多少?
答案 0 :(得分:0)
我已经看到UTF8使用4个字节的数据来存储值。 UCS2使用了多少?
UTF-8由1到3个字节的可变长度字符组成,UCS2(UTF-16)是每个字符固定的2个字节。
要在mysql中存储中文字符,建议将它们存储为UTF8或UCS2吗?
我没有中文字符的经验,但这个SO问题的最佳答案很好地回答了基本问题:Difference between UTF-8 and UTF-16?
从那里:
对于中文字符来说,UCS-2似乎可以节省存储空间。如果这是一个Web项目,我会倾向于使用UTF-8,因为它是更广泛的编码,是Web世界的标准。这里有UTF-8的其他参数:Should UTF-16 be considered harmful?大多数合理的字符,如拉丁语,西里尔语,中文,日语,可以用2个字节表示。除非需要非常奇特的字符,否则这意味着UTF-16的16位子集可以用作固定长度编码,从而加快索引速度。
mySQL参考:9.1.10. Unicode Support