[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 メーリングリストの案内