3

我正在开发一个包含土耳其语内容的 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.2

  • rails --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=

我该如何解决这个问题?

4

1 回答 1

1

OS X 上的 UTF-8 语言环境已损坏。您可以尝试使用非 UTF-8 语言环境 (tr_TR.ISO8859-9),但它似乎在这方面也被破坏了。所以这行不通。

于 2013-02-05T13:33:40.963 回答