我正在创建一个 EER 模型,并希望找到可为我提供最多可用字符数的排序规则。将存储的字符通常是标准英语,但有时品牌会包含外语和/或重音字符。我怎样才能确保它们得到支持并且不会在将来变成方 block 或问号?
通常我将它们存储为 UTF-16,但我没有看到该选项可用,至少在默认情况下是这样。
最佳答案
您正在寻找的是字符集而不是排序规则。字符集定义了符号集以及用于表示这些符号的编码。排序规则定义了用于比较给定字符集的字符并影响排序的规则。
Unicode 字符集提供最广泛的字符支持。 MySQL 支持两种 Unicode 编码:
- UTF8 - 使用最多 24 位对字符进行编码,向后兼容 ASCII 编码。
- UCS2 - 始终使用 16 位对每个字符进行编码,与 ASCII 编码不兼容。
在这两个字符集中,MySQL 有多种排序规则,指定不同语言的排序规则、Unicode 规则和二进制比较规则。
查看:Character Set Support在 MySQL 引用手册中。
关于MySQL Workbench : Which collation will allow the widest range of characters, 包括外来字符/重音字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12939142/