こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

postgreSQLとの併用

osにFreeBSD、PHP、postgrsqlを用いての画像データベースを作成しています。

画像は指定したディレクトリにきちんと保存されるのですが、それに付随するコメントがencoding errorで格納されません。

“". Execution failure ERROR: invalid byte sequence for encoding "SJIS": 0x8d27 HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".”
“Execution failure ERROR: character 0xefbc of encoding "SJIS" has no equivalent in "UTF8"”

というエラー文が出ているのでpostgresql.confのclient_encoding部分を
#client_encoding=sql_ascii

client_encoding=SJIS
のように変更しました。

しかし未だに同様のエラーが出ています。
「大本命」や「普通二輪免許」のような言葉は通りますが、「テスト文」や「紅一点」のような言葉は通りません。

試しに「$comment = mb_convert_encoding($comment, "UTF8", "SJIS");」
を組み込んでみましたが、その結果は変わりませんでした。

原因がわからず困っています。
どうかお力添えをお願いします。

投稿日時 - 2008-11-16 18:08:16

QNo.4483505

すぐに回答ほしいです

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

不明なところがあるので、参考程度に留めておいてください。

「HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding"」というエラーメッセージから、サーバの文字コードと、実際に挿入しようとしている文字列の文字コードが違っていると推測されます。PHP、PostgreSQLそれぞれの文字コードをご確認ください。

登録される文字列と登録されない文字列があるとのことなので、その文字列を挿入するSQL文をechoで出力して、phpPgAdminで実行してみてはいかがでしょうか。

投稿日時 - 2008-11-16 23:35:49

お礼

encodingの変換ができていなかっただけのようでした。
助けてくださってありがとうございました。

投稿日時 - 2008-11-29 04:18:58

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)