ruby-on-rails - 排序规则不能与 postgresql 一起正常工作

标签 ruby-on-rails macos postgresql

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

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

相关文章:

ruby-on-rails - 使用 Capybara 和 Selenium on Rails 5.1 应用程序(从 Rails 4 升级)的系统测试设置问题

swift - 如何获取 NSToolbar 高度?

cocoa - 如何在 OSX 中访问 NSWindow 的像素缓冲区?

java - JPA 多对多关系导致无限递归和堆栈溢出错误

postgresql - 如何在不重复的情况下提取年份

postgresql - Postgresql 表中的最大(可用)行数

javascript - Rails,如何创建 "google like"(URL 预览)link_to

ruby-on-rails - 使用 simple_form 自定义错误消息

ruby-on-rails - Rails money 圆美分

ios - 在 osx/ios 的世界里,什么是库,什么是框架?