3

トルコ語のコンテンツを持つRailsアプリを開発しています。データベースバックエンドとしてPostgresql9.2.2を使用しています。適切な順序を除いて、すべてが正常に機能します(奇妙な文字の問題などはありません)。

たとえば、都市別に並べ替えられたアイテムを一覧表示しようとすると、「アダナ、ブルサ、イスタンブール、ギレスン、ゾングルダク..」のようになります。

代わりに、私は常にリストの最後/最初にトルコ語固有の文字を取得します。(すなわち、「アダナ、ブルサ、ギレスン、ゾングルダク、イスタンブール」)

次のコマンドでpostgresデータベースを初期化しました:initdb /usr/local/var/postgres -E utf8 --locale=tr_TR

\lpsqlコンソールを使用すると、期待どおりの結果が得られます。

 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"やはり進行しませんでした。

私の開発環境に関するいくつかの情報:

  • MacbookPro7.1でMountainLion10.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

OSXのUTF-8ロケールが壊れています。UTF-8以外のロケール(tr_TR.ISO8859-9)を使用することもできますが、この点でも壊れているようです。したがって、それは機能しません。

于 2013-02-05T13:33:40.963 に答える