Utf8和 Latin1有什么区别?
在拉丁文1中,每个字符正好是一个字节长。在 utf8中,一个字符可以由多个字节组成。因此,utf8比 latin1有更多的字符(它们共有的字符不一定用相同的字节/字节序列表示)。
UTF-8 是为征服世界准备的,而 拉丁文1不是。
如果您试图使用拉丁1编码来存储非拉丁字符,如汉语、日语、希伯来语、俄语等,那么它们最终将变成 鸡尾酒。您可能会发现 这篇文章的介绍性文本很有用(如果您稍微懂一点 Java,就会发现更有用)。
注意,完整的4字节 UTF-8支持仅在 MySQL 5.5中引入。在这个版本之前,每个字符只有3个字节,而不是每个字符4个字节。因此,它只支持 BMP 平面,而不支持表情符号平面。如果您想要完全的4字节 UTF-8支持,请将 MySQL 升级到至少5.5,或者使用另一个 RDBMS,比如 PostgreSQL。在 MySQL 5.5 + 中,它被称为 utf8mb4。
utf8mb4