[pgsql-jp: 40634] Re: encodeで日本語が表示できない
Tatsuhito Kasahara
kasahara.tatsuhito @ oss.ntt.co.jp
2010年 12月 21日 (火) 20:17:28 JST
笠原と申します。
嶋崎 崇子 wrote:
> PostgreSQL 8.1.8 から 8.4.5 へのバージョンアップを行っています。
> 旧DBで
> select encode('あいうえお', 'base64');
> とした文字列を
> select encode(decode('pKKkpKSmpKikqg==', 'base64'), 'escape');
> で「あいうえお」と戻してもらえるのですが、
> 新バージョン(8.4.5)の環境ではマルチバイトの文字ではなく
> \244\242\244\244\244\246\244\250\244\252
> という文字コード(?)で返ってきてしまいます。
PostgreSQL 8.3 の時に、符号化関連の関数が刷新された影響だと思います。
> どのようにすれば、「あいうえお」という文字列が返ってくるのか
> ご存知の方、ご教示頂けますでしょうか。
例えば、下記の用に convert_from() 関数を使ってみて下さい。
=# select convert_from(decode('pKKkpKSmpKikqg==', 'base64'), 'EUC_JP');
convert_from
--------------
あいうえお
(1 row)
--
NTT OSSセンタ
笠原辰仁
pgsql-jp メーリングリストの案内