
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
不明なところがあるので、参考程度に留めておいてください。
「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)