我正在开发一个包含土耳其语内容的 Rails 应用程序。我使用 Postgresql 9.2.2 作为我的数据库后端。一切正常(没有奇怪的字符问题等),除了正确的排序。
例如,当我尝试列出一些按城市排序的项目时,我希望得到类似“Adana, Bursa, İstanbul, Giresun, Zonguldak ..”的内容。
相反,我总是在列表的末尾/开头得到土耳其语特定字符。(即“阿达纳、布尔萨、吉雷松、宗古尔达克、伊斯坦布尔”)
我已经用命令初始化了我的 postgres 数据库:initdb /usr/local/var/postgres -E utf8 --locale=tr_TR
当我\l
在 psql 控制台中时,我得到了预期。
Name Owner Encoding Collate Ctype
----------------+-------------+----------+---------+-------+
app_development | app | UTF8 | tr_TR | tr_TR |
app_production | app | UTF8 | tr_TR | tr_TR |
app_test | app | UTF8 | tr_TR | tr_TR |
postgres | monkegjinni | UTF8 | tr_TR | tr_TR |
我还尝试使用LC_CTYPE="tr_TR.UTF-8"
and手动创建数据库LC_COLLATE="tr_TR.UTF-8"
,但同样没有进展。
关于我的开发环境的一些信息:
使用 Macbook Pro 7.1 运行 Mountain Lion 10.8.2
psql --version
: 9.2.2rails --version
: 3.2.11
$ locale
:
- LANG="tr_TR.UTF-8"
- LC_COLLATE="tr_TR.UTF-8"
- LC_CTYPE="tr_TR.UTF-8"
- LC_MESSAGES="tr_TR.UTF-8"
- LC_MONETARY="tr_TR.UTF-8"
- LC_NUMERIC="tr_TR.UTF-8"
- LC_TIME="tr_TR.UTF-8"
- LC_ALL=
我该如何解决这个问题?