dbmailのマルチバイト対応(?)はややこしそう
postgresqlのカラム定義をbytea型にするなら、dbmailのソースコード変更も必要だよなぁ・・。
DBの文字コードをUNICODEにしたら大丈夫なのかな?dbpgsql.cには
#ifdef OLD /* UNICODE is broken prior to 8.1 */ if (PQserverVersion(conn) < 80100) { char *enc = NULL; enc = pg_encoding_to_char(PQclientEncoding(conn)); // if (strcmp(enc, "SQL_ASCII") != 0) { if (strcmp(enc, "UNICODE") == 0) { TRACE(TRACE_FATAL, "Database encoding UNICODE is not sup ported prior to PostgreSQL 8.1"); } // FIXME: Does we need to free enc? } #endif
とかあるのが気になる。sargeの標準は7.4だ。
UNICODEは使えない?エラーメッセージにデータベースのエンコーディングにUNICODEは使えないって出てるしなぁ。。関数はクライアントのエンコーディングっぽいが・・この場合クライアントのエンコーディングって何だ?CでDBは分からない・・。
うーん。簡単には解決しなさそうだ。
標準的なメーラーでEUC-JPに変換できないような文字列を送ってくるソフトってあるのかな・・わからん。
postgresql側で設定された文字コードに無いデータが入ってきたら自動的に空白に置き換える機能とかは・・これもよくわからないな。