我目前正在开展一个项目,翻译成18种语言,如俄语,德语,瑞典语或中文。我在使用不同语言对国家名称进行排序时遇到了一些问例如,法语国家/地区名称的排序方式如下: - États-Unis - Éthiopie - 阿富汗
我在使用MAMP的本地服务器上没有此问题。 我的数据库的字符集配置为utf8,排序规则为utf8_unicode_ci。我在远程服务器上有完全相同的配置。
我在本地服务器上创建了一个my.cnf文件,其中包含以下说明,以便正确显示特殊字符:
$ hg clone https://vim.googlecode.com/hg/ vim
$ cd vim
$ ./configure --enable-pythoninterp
$ make
$ sudo make install
在远程服务器上,my.cnf文件不包含这些行。当我尝试添加它们时,MySQL不再识别特殊字符,就像它将它们解释为latin1一样。 我检查了collation_database和所有character_set变量,但它们都被设置为utf8 / utf8_unicode_ci。
以下是创建表的SQL代码:
[mysqld]
skip-character-set-client-handshake
collation_server=utf8_unicode_ci
character_set_server=utf8
我的远程服务器上正确显示了特殊字符。唯一的问题是使用ORDER BY子句进行排序。
似乎远程服务器的配置有问题,但我无法弄清楚是什么。