my.cnf中正确的MySQL字符集/校对变量?

时间:2010-07-28 21:58:39

标签: mysql encoding

我正在尝试将我的网站完全切换到UTF-8,所以我不必处理utf8_encode()& utf8_decode()函数。

我正确设置了表格的排序规则,我暂时使用查询SET NAMES utf8来覆盖my.cnf文件。

我的问题是 - my.cnf中有大量的字符集和校对变量,我怀疑某些字符集应该被单独存在...我应该改变哪些来实现SET NAMES utf8的效果?

(我的表格整理为utf8_unicode_ci。)

character_set_client | latin1 |
character_set_connection | latin1 |
character_set_database | latin1 |
character_set_filesystem | binary |
character_set_results | latin1 |
character_set_server | latin1 |
character_set_system | utf8 |

collation_connection | latin1_swedish_ci |
collation_database | latin1_swedish_ci |
collation_server | latin1_swedish_ci |

1 个答案:

答案 0 :(得分:0)

好吧,整理主要用于排序,所以除非您存储具有特定排序需求的lnaguage,否则utf8_unicode_ci应该没问题。

character_set_*值在内部用于所有其他字符串操作 - 在WHERE子句或IF / CASE语句等地方进行值检查,字符串函数如CHAR_LENGTH(),REPLACE(),SUBSTRING() - 那种东西。

一般来说,除了filesystem之外,所有都应该是相同的(在这种情况下,utf8) - 我建议将其保留为二进制,除非你有一个具体需要远离那个。