我最近了解到,如果您不希望MySQL将å读作a或将ö读作o,则需要使用uft8_bin排序规则。
我的网站是多租户的,因此并非每个人都需要使用uft8_bin排序规则。我的一些客户位于挪威和芬兰,需要正确排序这些“非英语”字符。
但是是否将表设置为uft8_bin是一个好主意呢?
还是有更好的方法,例如仅在非英语国家设置排序规则为uft8_bin?
这会影响来自英语国家的任何人吗?还是uft8_bin和uft8_general_ci的行为相同,但具有正确排序å、ö等字符的额外优势?
还是有比uft8_bin更好的选择吗?
我的网站是多租户的,因此并非每个人都需要使用uft8_bin排序规则。我的一些客户位于挪威和芬兰,需要正确排序这些“非英语”字符。
但是是否将表设置为uft8_bin是一个好主意呢?
还是有更好的方法,例如仅在非英语国家设置排序规则为uft8_bin?
这会影响来自英语国家的任何人吗?还是uft8_bin和uft8_general_ci的行为相同,但具有正确排序å、ö等字符的额外优势?
还是有比uft8_bin更好的选择吗?
utf8_general_ci
,它会将ä与其他a放在一起。这里是一个SQL Fiddle示例http://sqlfiddle.com/#!2/9572e/1。 - Ben Sinclairutf8_general_ci
是一种通用的不区分大小写的排序方式。我正在尝试找到完整的列表,但如果你有像phpMyAdmin这样的工具,可以选择一个挪威特定的utf8_*_ci
排序方式。 - Ry-icelandic
,latvian
,romanian
,polish
,estonian
,spanish
,swedish
,turkish
,czech
,danish
,lithuanian
,slovak
,roman
,persian
,esperanto
,hungarian
, andsinhala
. - Ry-utf8_bin
:) 如果你需要的话,只需将其更改为utf8_danish_ci
即可。 - Ry-utf8_general_ci
,因为那是我当时所知道的,现在我想从现在开始做正确的事情,以便所有语言都能正常显示。也许可以根据他们的语言在每个SQL语句中运行COLLATE?http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html - Ben Sinclairutf8_general_ci
应该是“一刀切”的排序规则,所以如果它不起作用,我不认为在这方面有更好的选择。 - Ry-