[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 メーリングリストの案内