PostgreSQLのcreatedbでの文字エンコーディングとか
ネット検索でよく見かけるパターンが、「createdb -E UTF8 -T template0 -O owner -U user dbname」なんだけど、これで出来たデータベースはlc_collateがC、lc_ctypeもCってなって、言語固有のサポート(辞書順の並べ替えとか)が受けられないんじゃないかと思えてくる。
やはり「--locale=ja_JP.UTF8」も加えて「createdb -E UTF8 --locale=ja_JP.UTF8 -T template0 -O owner -U user dbname」なんじゃないのかなって思うのだけど、どっちがどう正しいのか判断できる情報にたどり着けず、落ち着かない気持ちになる。
サーバーがPostgreSQL 8.4系なのだけど、「--locale=ja_JP.UTF8」って書いたらエラーメッセージ(記録に残してない、すみません)が表示されて、「--locale=japanese」って書いたら通った。 コマンド全体として「createdb -E UTF8 --locale=japanese -T template0 -O owner -U user dbname」 本当にこれでいいんだろうか。
やりたいこととしては、文字エンコーディングはUTF8にしたい。 ただし、Windowsの扱うCP932を保存する目的で、いわゆる機種依存文字も含めてUnicodeとして保持されれば上出来なのだけど。













