[pgsql-jp: 40636] Re: encodeで日本語が表示できない
Itagaki Takahiro
itagaki.takahiro @ gmail.com
2010年 12月 21日 (火) 20:40:02 JST
2010/12/21 嶋崎 崇子 <taka-shimazaki @ secom.co.jp>:
> select encode(decode('pKKkpKSmpKikqg==', 'base64'), 'escape');
> で「あいうえお」と戻してもらえるのですが、
> 新バージョン(8.4.5)の環境ではマルチバイトの文字ではなく
> ¥244¥242¥244¥244¥244¥246¥244¥250¥244¥252
> という文字コード(?)で返ってきてしまいます。
>
> どのようにすれば、「あいうえお」という文字列が返ってくるのか
> ご存知の方、ご教示頂けますでしょうか。
もともとの encode('escape') の使い方が正しく無いような気がします。
bytea から文字列への変換なので、convert_from() を使うのでは?
=# select convert_from(decode('pKKkpKSmpKikqg==', 'base64'), 'euc_jp');
convert_from
--------------
あいうえお
(1 行)
なぜ 8.1 だと動作するのかまでは調べてません。
PGの古いバグをうっかり利用してしまっていたようにも見えますが…。
--
Itagaki Takahiro
pgsql-jp メーリングリストの案内