WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:PostgreSQLのデータ追加

0:[投稿] ふぁいぶ [2005/05/06 20:26 ][環境:IE6 Linux PostgreSQL8.0.1]

insertで全角文字を追加しようとするとエラーになります。
文字数が偶数の場合はOKですが、文字数が奇数の場合エラーになります。
エラー
invalid byte sequence for encoding "EUD_JP"

ちなみにDBのencodingはEUC_JPになっています。

よろしくお願いします


1:[回答] 通りがかり。 [2005/05/06 23:56 ]

EUD_JP?


2:[回答] 岩本隆史 [URL] [2005/05/07 17:43 ]

insert文の書かれたテキストファイルをEUC-JPで保存、「psql -f」するとどうでしょうか。


3:[回答] ふぁいぶ [2005/05/09 19:16 ]

psqlのコマンドラインから直でNGになってしまいます。
FedoraのインストールCDに入っているPostgreSQLを入れたらOKでした。
違いは、PostgreSQLのバージョンです。
[NG]
PostgreSQL 7.4.6 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)

[OK]
PostgreSQL 7.4.6 on i386-redhat-linux-gnu, compiled by GCC i386-redhat-linux-gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6)


4:[質問] ふぁいぶ [2005/05/09 20:21 ]

インストールに問題ありでしょうか?


5:[回答] ふじ [URL] [2005/05/09 20:50 ]

再現するデータ(実行したSQL)を提示してください。

また、NG な PostgreSQL はご自分でコンパイルされたのでしょうか?
そうでしたら、configure のオプションが分からないと何とも。


6:[質問] ふぁいぶ [2005/05/10 10:44 ]

./configure --enable-multibyte=EUC_JP --enable-syslog
です。

SQLは、

create table test (aaa text);
insert into test values('あ');

です。


7:[回答] ふじ [URL] [2005/05/10 14:20 ]

PostgreSQL 7.3 からマルチバイト対応はデフォルトで有効になっているので、
--enable-multibyte=EUC_JP の指定は不要です。

DBの文字コードセットを設定するには
initdb か createdb に -E (--encoding) オプションで指定しますが、
initdb と cratedb はどのように実行しましたか?

psql で DB に接続して、\l を打ってみてください。
Encoding の値が EUC_JP になっていないのではないかと思います。


8:[質問] ふぁいぶ [2005/05/10 15:03 ]

initdb -E EUC_JP
createdb -E EUC_JP DBNAME

psql -lでも
encodingはEUC_JPになっています。

なんでしょう?


9:[回答] 岩本隆史 [URL] [2005/05/11 14:06 ]

端末の文字コードはEUC-JPですか?


10:[回答] 通りがかり。 [2005/05/11 20:52 ]

Fedoraってutf-8になってましたね。
もし、teratermでutf-8対応のものを使っているなら、岩本さんの言われる
可能性は十分にありますね。
文字コードは、まったく同じ環境で、試さないと、結果がOKでも目で見るも
のが文字化けじゃ、判断違いをしても仕方が無い。


11:[完了] ふぁいぶ [2005/05/12 17:45 ]

端末の文字コードの問題でした。
みなさま、ありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World