为什么MySQL使用latin1_swedish_ci作为默认值?

Met*_*lis 51 mysql encoding

有谁知道为什么latin1_swedish是MySQL的默认值.在我看来,UTF-8会更兼容吗?

通常选择默认值是因为它们是最好的通用选择,但在这种情况下,它们似乎并不是他们所做的.

Pek*_*ica 39

据我所知,latin1是前多字节时间的默认字符集,看起来似乎已经继续,可能是出于向下兼容的原因(例如,对于没有指定排序规则的较旧的CREATE语句).

这里:

4.0做了什么

MySQL 4.0(及更早版本)仅支持在服务器级别指定的字符集和排序规则与单字节字符编码相结合的概念.默认latin1值为,对应于latin1的字符集和latin1_swedish_ciMySQL 4.1中的排序规则.

至于为什么瑞典语,我只能猜测是因为MySQL AB是瑞典语.我看不出任何其他理由选择这种整理,它带有一些特定的排序怪癖(ÄÖÜ来自ZI思考),但它们远未达到国际标准.

  • 我认为他们选择这种相当奇怪的搭配来让用户明白它应该被改变.当然在大多数情况下并没有像预期的那样结果但是被默认的暴政所阻止:) (2认同)
  • @TheSurrican,多么奇怪的答案.是什么让这个奇怪的整理?这是瑞典公司选择的标准拉丁1的瑞典版本.就像Oracle为他们的产品选择美国英语一样. (2认同)
  • 如何将latin1_swedish_ci设为ISO 8859-1,将ISO 8859-1进行排序是第一个可用选项,因此,如果您不指定任何选项,则phpMyAdmin中的<select>只会选择第一个元素 (2认同)

bea*_*ear 6

latin1是默认字符集.MySQL的latin1与Windows cp1252字符集相同.这意味着它与官方ISO 8859-1或IANA(互联网号码分配机构)latin1相同,除了IANA latin1将0x80和0x9f之间的代码点视为"未定义",而cp1252,因此MySQL的latin1,分配字符对于那些职位.

http://dev.mysql.com/doc/refman/5.0/en/charset-we-sets.html

可能会帮助您理解原因.

  • 是的,但问题是为什么这是默认的字符集而不是非常多才多艺的UTF-8? (4认同)