utf8 和 latin1 有什么区别?
问问题
153150 次
2 回答
173
如果您尝试使用 Latin1 编码存储非拉丁字符,如中文、日文、希伯来文、俄文等,那么它们最终将成为mojibake。您可能会发现本文的介绍性文本很有用(如果您对 Java 有一点了解,可能会更有用)。
请注意,仅在 MySQL 5.5 中引入了完整的 4 字节 UTF-8 支持。在该版本之前,每个字符最多只能占用 3 个字节,而不是每个字符 4 个字节。因此,它仅支持 BMP 平面,而不支持 Emoji 平面。如果您想要完整的 4 字节 UTF-8 支持,请将 MySQL 升级到至少 5.5 或使用另一个 RDBMS,例如 PostgreSQL。在 MySQL 5.5+ 中,它被称为utf8mb4
.
于 2010-04-25T16:54:47.153 回答
58
在 latin1 中,每个字符正好是一个字节长。在 utf8 中,一个字符可以包含多个字节。因此 utf8 具有比 latin1 更多的字符(并且它们共同具有的字符不一定由相同的字节/字节序列表示)。
于 2010-04-25T16:42:23.770 回答