[pgsql-jp: 41586] Re: 文字コード取得方法
Tomoaki Sato
sato @ sraoss.co.jp
2014年 3月 8日 (土) 10:03:14 JST
佐藤です。
> 佐野です。
>
>> => select encode(c::bytea, 'hex') from t;
>> encode
>> --------
>> e38182
>> (1 行)
>
> 回答ありがとうございます。
> やりたいことは上記内容であっています。
>
> 上記にてVarchar型に格納されているフィールド名を指定してSQLを
> 実行すると、下記エラーが発生します。
> Varchar型で実行することはできないでしょうか?
>
> エラー:
> ERROR: cannot cast type character varying to bytea
> SQLステート:42846
PostgreSQL 8.2 でしたね。8.2 なら
=# SELECT encode(decode(c, 'escape'), 'hex') FROM t;
encode
--------
e38182
(1 row)
でいけます。
>> 佐藤です。
>>
>> > 佐野です。
>> >
>> > 先ほどの内容を訂正いたします。申し訳ありません。
>> >
>> > エンコードではなく、文字列よりutf-8文字コードが知りたいです。
>> > 誤:EUC文字コード 正:utf-8文字コード
>>
>> => select c from t;
>> c
>> ----
>> あ
>> (1 行)
>>
>> => select encode(c::bytea, 'hex') from t;
>> encode
>> --------
>> e38182
>> (1 行)
>>
>> ということですかね。
>>
>> > 現状ODBC経由で文字列を取得するとUnicodeに変換されるため
>> > DBに格納されているutf-8文字コードが分からない状況です
>> >
>> >> 佐野です。
>> >>
>> >> 説明不足でした。すみません。
>> >>
>> >> エンコードではなく、文字列よりEUC文字コードが
>> >> 知りたいです。
>> >>
>> >> 現状ODBC経由で文字列を取得するとUnicodeに変換されるため
>> >> DBに格納されているEUCコードが分からない状況です
>> >>
>> >> > 佐藤です。
>> >> >
>> >> > > 佐野と申します。
>> >> > > Postgreの文字列取得について質問があります。
>> >> > >
>> >> > > Postgreサーバ(8.2.14 utf-8)に格納されている
>> >> > > 文字列から文字コードを取得する方法を教えていただけないでしょうか
>> >> >
>> >> > 文字エンコーディングが UTF8 のデータベースに格納されている文字列の
>> >> > 文字エンコーディングは UTF8 では?
>> >> >
>> >> > => select current_setting('server_encoding');
>> >> > current_setting
>> >> > -----------------
>> >> > UTF8
>> >> > (1 行)
----
Tomoaki Sato <sato @ sraoss.co.jp>
SRA OSS, Inc. Japan
pgsql-jp メーリングリストの案内