[pgsql-jp: 34536] Re: 文字コードの使用について

tomson tomson_lpcjp @ yahoo.co.jp
2004年 12月 24日 (金) 10:23:39 JST


Thu, 23 Dec 2004 21:14:18 +0900 に
ISHIDA Akio <iakio @ mono-space.net> 樣は書かれました

> こんばんは。石田@苫小牧市です。

こんにちは。tomsonと申します。

> >>指定できるとあったので、($createdb --encoding UTF-8)
> > 
> > 
> > これは
> > 
> > [host @ hoge]$createdb --encoding=5
> > 
> > ですね。
> > マルチバイト符号化方式IDで指定しないと、うまくいきません。
> 
> 手元では--encoding=UTF-8で問題ないようですが、
> (むしろ--encoding=5では動作しません)
> どういう環境でしょうか?

すいません。psqlのコマンド create databaseと勘違いしておりました。

自環境は、

[w @ compaq w]$ psql -c 'select version()'
version
PostgreSQL
7.3.4 on i386-redhat-linux-gnu, compiled by GCC i386-redhat-linux-gcc
(GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)(1 row)

であります。
apt-get で fedra-regacyでupgradeしているので、RPMの
Postgresになっております。
ソースからコンパイルを試みましたが、tarballがいつも壊れていて、うまくダ
ウンロード出来ないのです。

仕事のとき、FerdraCoreでやったときは、うまく行きました。
 
しかし自環境で、ご指摘のコマンドを実行した場合、こうなります。

[w @ compaq w]$ createdb utf --encoding=UTF-8
CREATE DATABASE
COMMENT

w=# \l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+-----------
 template0 | postgres | SQL_ASCII
 template1 | postgres | SQL_ASCII
 utf       | w        | SQL_ASCII<--Encodingが適用されておりません!

(3 rows)

> $ createdb --encoding=5 x

申訳ございません。create databaseと混同しておりました。
この部分は「psqlの」コマンドラインで、

w=# create database utf ENCODING=6;
CREATE DATABASE
w=# \l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+-----------
 template0 | postgres | SQL_ASCII
 template1 | postgres | SQL_ASCII
 utf       | w        | UNICODE

(3 rows)

としなければなりませんでした。
以前のバージョンでは、unicodeのマルチバイト符号化IDは「5」だったので、
誤って5と書いてしまいました。5はこのversionではJOHABすなわち韓国語です。

なぜこのようになるのかは、ソースコードをみなければなりませんが、
RPM版のsrc.rpmを展開して、ソースを確認するひまがありません。
今回の場合、元記事で7.4.5リリースと書いてあるのに、それを確認しないで
書いてしまいました。

ご指摘ありがとうございました。



pgsql-jp メーリングリストの案内