数据库的排序规则是什么用途?对于HTML UTF-8,我知道一点,比如显示其他语言类型。但是对于数据库呢?我正在使用latin-1(默认),我的朋友告诉我使用UTF代替。当我问为什么时,他们不知道并说其他人使用它。所以我在质疑校对真正做了什么?它会影响速度或类似的东西吗?
答案 0 :(得分:9)
MySQL通过在字符编码后命名的排序规则来混淆问题。它们是不同的概念。
collation确定关系运算符(<
,>
等)和ORDER BY
子句如何排序字符串。整理所考虑的问题是:
其中一些取决于语言。
A character encoding确定如何将文本值转换为字节序列和从字节序列转换。有关详细介绍,请参阅The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)。
有数百种不同的字符编码,大多数特定于操作系统和语言环境的某种组合。它们中的大多数是US-ASCII的超集,所以如果你确定你的数据将仅仅是ASCII,那么你使用的编码无关紧要
但是如果你需要其他字符,你需要一个可以处理它们的编码。对于西方语言,您的选择通常是:
两者之间的区别是:
答案 1 :(得分:3)
我认为你混淆了 charset 和整理这个词
http://dev.mysql.com/doc/refman/5.0/en/charset-general.html
字符集是一组符号和编码。 排序规则是一组用于比较字符集中字符的规则。
latin1和utf8是MySQL中的有效字符集,而latin1_swedish_ci和utf8_general_ci是示例排序规则。
答案 2 :(得分:1)
See this on Answers。关于字符集和代码页,请参阅维基百科。仅供参考latin1适用于英语和西欧国家。 UTF-8适用于可能包含例如中文或阿拉伯文字的通用应用程序。
答案 3 :(得分:1)
数据库排序规则控制字符串的比较/排序方式 - 以及较低级别如何解释存储的字符数据。 Latin-1将允许存储/比较latin-1代码页中的字符串。如果你需要处理,例如日语文本然后UTF-8是一个更好的选择。
答案 4 :(得分:-1)
严格地说,数据库整理将影响字符数据的排序。使用UTF-8的原因是因为你要存储UTF-8数据。