Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* ロケール・日本語設定 [#ydd85f54]
** 各種ロケールの確認 [#h5c7ea34]
psql> SHOW lc_collate;
psql> SELECT name, setting, context FROM pg_settings WHE...
name | setting | context
-------------+---------+-----------
lc_collate | C | internal
lc_ctype | C | internal
lc_messages | C | superuser
lc_monetary | C | user
lc_numeric | C | user
lc_time | C | user
** クライアント側のエンコーディングの確認 [#k4a56db6]
psql> \encoding
UTF8
** 全データベースのロケール・エンコーディングの確認 [#b46...
$ psql -l
または
psql> \l
List of databases
Name | Owner | Encoding | Collation | Ctype | ...
-----------+----------+----------+-----------+-------+--...
mydb01 | taro | EUC_JP | C | C |
mydb02 | taro | UTF8 | C | C |
** ロケールに関する決まり事 [#nf061822]
*** ロケール無し=ロケールC [#z2dce4c0]
「initdb locale=C」と「initdb --no-locale」は同じ意味。
*** ロケールをC以外にするなら、必ずエンコーディングも同じ...
例えば、ロケールをEUC_JPにするなら、一緒にエンコーディン...
$ createdb --encoding=EUC_JP --locale=ja_JP.EUC_JP --tem...
*** ロケールを設定するタイミング [#h13b6379]
initdbもしくはcreatedbする時。createdbで指定できるのはPos...
** UTF8でinitdbして、EUCJPでcreatedbする [#tefb644d]
*** initdbする [#xf952dbb]
$ initdb --locale=C --encoding=UTF8
*** createdbする [#z09dcae2]
$ createdb --encoding=EUC_JP --locale=ja_JP.EUC_JP --tem...
localeとencodingのエンコーディングは揃える。
*** psqlで接続 [#kf2712c3]
$ LC_ALL=ja_JP.eucjp psql mydb01
ターミナルのエンコーディングはEUCにしておく。
** 日本語が正しく扱えるか確認する [#d6d281ec]
CREATE TABLE t1 ( str text );
INSERT INTO t1 VALUES ( 'ううう' );
INSERT INTO t1 VALUES ( 'ええ' );
INSERT INTO t1 VALUES ( 'お' );
INSERT INTO t1 VALUES ( 'いいいい' );
INSERT INTO t1 VALUES ( 'あああああ' );
SELECT * FROM t1 WHERE str LIKE '%あ%';
SELECT length(str), str FROM t1 ORDER BY str;
** psqlで日本語入力が利かない(エコーバックされない) [#v...
readlineを切ってみる。
$ psql -n mydb01
** 参考 [#tf9ecd4f]
:ロケール(国際化と地域化)|http://lets.postgresql.jp/docum...
:psql | http://www.postgresql.jp/document/9.2/html/app-ps...
終了行:
* ロケール・日本語設定 [#ydd85f54]
** 各種ロケールの確認 [#h5c7ea34]
psql> SHOW lc_collate;
psql> SELECT name, setting, context FROM pg_settings WHE...
name | setting | context
-------------+---------+-----------
lc_collate | C | internal
lc_ctype | C | internal
lc_messages | C | superuser
lc_monetary | C | user
lc_numeric | C | user
lc_time | C | user
** クライアント側のエンコーディングの確認 [#k4a56db6]
psql> \encoding
UTF8
** 全データベースのロケール・エンコーディングの確認 [#b46...
$ psql -l
または
psql> \l
List of databases
Name | Owner | Encoding | Collation | Ctype | ...
-----------+----------+----------+-----------+-------+--...
mydb01 | taro | EUC_JP | C | C |
mydb02 | taro | UTF8 | C | C |
** ロケールに関する決まり事 [#nf061822]
*** ロケール無し=ロケールC [#z2dce4c0]
「initdb locale=C」と「initdb --no-locale」は同じ意味。
*** ロケールをC以外にするなら、必ずエンコーディングも同じ...
例えば、ロケールをEUC_JPにするなら、一緒にエンコーディン...
$ createdb --encoding=EUC_JP --locale=ja_JP.EUC_JP --tem...
*** ロケールを設定するタイミング [#h13b6379]
initdbもしくはcreatedbする時。createdbで指定できるのはPos...
** UTF8でinitdbして、EUCJPでcreatedbする [#tefb644d]
*** initdbする [#xf952dbb]
$ initdb --locale=C --encoding=UTF8
*** createdbする [#z09dcae2]
$ createdb --encoding=EUC_JP --locale=ja_JP.EUC_JP --tem...
localeとencodingのエンコーディングは揃える。
*** psqlで接続 [#kf2712c3]
$ LC_ALL=ja_JP.eucjp psql mydb01
ターミナルのエンコーディングはEUCにしておく。
** 日本語が正しく扱えるか確認する [#d6d281ec]
CREATE TABLE t1 ( str text );
INSERT INTO t1 VALUES ( 'ううう' );
INSERT INTO t1 VALUES ( 'ええ' );
INSERT INTO t1 VALUES ( 'お' );
INSERT INTO t1 VALUES ( 'いいいい' );
INSERT INTO t1 VALUES ( 'あああああ' );
SELECT * FROM t1 WHERE str LIKE '%あ%';
SELECT length(str), str FROM t1 ORDER BY str;
** psqlで日本語入力が利かない(エコーバックされない) [#v...
readlineを切ってみる。
$ psql -n mydb01
** 参考 [#tf9ecd4f]
:ロケール(国際化と地域化)|http://lets.postgresql.jp/docum...
:psql | http://www.postgresql.jp/document/9.2/html/app-ps...
ページ名: