31

utf16 还是 utf32?我正在尝试以多种语言存储内容。一些语言使用双宽字体(例如,日文字体通常是英文字体的两倍)。我不确定我应该使用哪种数据库。有关这四个字符集之间差异的任何信息...

4

2 回答 2

43

MySQL 的utf32and utf8mb4(以及标准的 UTF-8)可以直接存储 Unicode 指定的任何字符;前者的大小固定为每个字符 4 个字节,而后者的大小在每个字符 1 到 4 个字节之间。

utf8mb3而原文utf8只能存储前65,536个码点,将覆盖CJVK(中文、日文、越南、韩文),每个字符使用1到3个字节。

utf16前 65,536 个代码点使用 2 个字节,其他所有代码点使用 4 个字节。

至于字体,这严格来说是一种视觉上的东西。

“每个软件开发人员绝对、肯定必须了解 Unicode 和字符集的绝对最低要求(没有借口!)”

另请参阅MySQL 文档以获取 Unicode 支持

于 2012-07-18T02:25:46.393 回答
0

utf8mb4是最好的。

utf8mb4与 utf8 的每个字符 3 个字节相比,支持每个字符 4 个字节,因此它涵盖了更广泛的使用范围而不会出错。

例如,utf8mb4您可以支持表情符号。如果您尝试在不受支持的字符集中插入表情符号,则会出现错误。

utf8mb4是 2 的更现代版本,最终将取代旧版本。

于 2020-09-04T00:53:43.220 回答