2010年12月21日

[pgsql-jp: 40634] Re:encodeで日本語が表示できない

笠原と申します。

嶋崎 崇子 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センタ

笠原辰仁


投稿者 xml-rpc : 2010年12月21日 20:17
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/100892
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。