• ベストアンサー

PostgreSQLへのinsert処理

PostgreSQLのinsert処理でエラーが発生します。 最初に作ったDBではうまくいっていたのですが、AccessからODBC接続した際に日本語の項目が文字化けしていたため、文字コードの問題かと思い、文字コードを「EUC_JP」で指定したDBとテーブルを作り直し、再度実行してみたところ、「PostgreSQL query failed: ERROR: Invalid EUC_JP character sequence found (0x8365)」というエラーが発生し、insert処理が実行されませんでした。insertする項目をバラけさせて確認したところ、日本語の内容の部分でエラーが発生していました。 Accessの文字化けの件と併せて調べていますが、原因が今ひとつ分かりません。どなたか回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

登録するデータをEUC_JPに変換して試してください。 mb_detect_encoding() mb_convert_encoding()

okti_m131
質問者

補足

回答ありがとうございます。 本日試して見ましたが、やはり同じエラーが出てしまい、処理が実行されませんでした。以下、修正した部分です。 mb_convert_encoding("項目名","EUC-JP"); この処理を、日本語が入力される項目の変数ごとに行ってみたのですが、全く同じエラーが出てしまいます。 関数の使い方が間違っているのでしょうか?

その他の回答 (1)

  • kaz33
  • ベストアンサー率60% (20/33)
回答No.2

「文字コードがEUC-JPじゃないよ!」ってエラーですね mb_convert_encoding()でも駄目ということですので・・・ # SET CLIENT_ENCODING TO 'SJIS'; # INSERT INTO table VALUES(・・・) という風に投げるとどうなりますか? ODBCの件ですが、ODBCドライバのバージョンを上げると直る場合もありますよ。

関連するQ&A