[pgsql-jp: 31902] Re: 日本語データがINSERT できない
Keiji Mitsubuchi
keiji @ nwco.com
2004年 1月 6日 (火) 20:12:20 JST
三淵@NWCです
はずしているかもしれませんが
”研磨剤製品”は
SJIS -> ”\x8C\xA4\x96\x81\x8D\xDC\x90\xBB\x95\x69”
となり
最後の"\x95\x69"がエラーのようです。
と言うことは、PHPのプログラムは
SJISで書いているのではないでしょうか?
SQL文もEUCで書かないとうまく動きません。
動いているようでも、
データをSJISのままインサートしてしまい
後で、バックアップのときとか
困ることになります。
PHPのプログラムもEUCに変えるか
php.iniの設定を、気をつけないと
同じような現象は、起きます。
ご参考まで
----- Original Message -----
From: "k-saka" <k-saka @ lightware.co.jp>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Tuesday, January 06, 2004 7:41 PM
Subject: [pgsql-jp: 31901] 日本語データがINSERT できない
> 初めて参加させていただきます、坂口と申します。
> よろしくお願い致します。
>
> 現在ローカルで作成したCSVファイルをwebサーバにアップデート後、
> PHPによりその内容をINSERT文にし、実行ということを
> やろうとしているのですが、文字コード絡みで上手くいきません。
>
> まず環境は以下となります。
> OS : FreeBSD 4.7
> Apache : 1.3.27
> PHP : 4.3.4
> PostgreSQL : 7.3.4
>
> そして、表示されるエラーとそのINSERT文が以下となります。
>
> ERROR: Invalid EUC_JP character sequence found (0x9569)
>
> insert into mytable values(1,'研磨剤製品','0',1,now());
> //項目は減らしていますが、日本語が入っているのはこの列のみです
>
> psql -i で表示されるデータベースの文字コードはEUC-JPになっていまして、
> PHPの方もINSERT直前のデータをmb_detect_encodingという関数で、
> 文字コードを確認するとこちらもEUC-JPとなっています。
>
> ですがエラーを見ると、無効なEUC-JPの文字です、
> のようなことを言われているのは何故なのでしょうか。
>
> どなたかご存知の方いらっしゃいましたらご教授ください。
>
> 以上、よろしくお願い致します。
>
> 坂口
>
pgsql-jp メーリングリストの案内