我正在开发一个包含土耳其语内容的 Rails 应用程序。我使用 Postgresql 9.2.2 作为我的数据库后端。除了正确的顺序外,一切正常(没有奇怪的字符问题等)。
例如,当我尝试列出一些按所在城市订购的商品时,我希望得到类似“Adana、Bursa、İstanbul、Giresun、Zonguldak ..”的信息。
相反,我总是在列表的末尾/开头获得土耳其语特定字符。 (即“阿达纳、 bool 萨、吉雷松、宗古尔达克、 Istanbul 尔”)
我已经用命令初始化了我的 postgres 数据库:initdb/usr/local/var/postgres -E utf8 --locale=tr_TR
当我在 psql 控制台中 \l
时,我得到了预期的结果。
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"
和 LC_COLLATE="tr_TR.UTF-8"
手动创建数据库,但同样没有进展。
关于我的开发环境的一些信息:
在 Macbook Pro 7.1 上运行 Mountain Lion 10.8.2
psql --version
: 9.2.2rails --version
: 3.2.11
$语言环境
:
- 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=
我该如何解决这个问题?
最佳答案
OS X 上的 UTF-8 语言环境已损坏。您可以尝试使用非 UTF-8 语言环境 (tr_TR.ISO8859-9),但它似乎在这方面也有问题。所以它不会起作用。
关于ruby-on-rails - 排序规则不能与 postgresql 一起正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690368/