某社のシェープファイルを叩き込む

PostGISにデータを入れる際はシフトJISでなくUTF-8にしています。これは私の信仰と考えて頂いて差し支えありません。
shp2pgsql を使うのですが、はじめはこれでSQLを生成して、nkf をかけてUTF-8にしてやればいいだろう、と考えていたのですが、どうもうまくいかない。時々変な文字がまじってきます。
もしかしてというかもしかせんでも、shp2pgsql がバックスラッシュ対策をしていてくれたのでした。これを PostGIS に叩き込む分にはいいのですが nkf は、このあたりを見てくれない。
じゃあdbfを直でいじればいいかと思って、dbfの仕様とにらめっこしながら、それっぽいのを作成。perlのpack, unpack は結構偉大だと感じました。
ただ、dbfのデータをUTF-8にして、shp2pgsql を実行すると、なぜかうまくいかない。シフトJISとはパターンが違うので、よけいに意味不明。
困ったのですが、dbfのデータをEUCにして、shp2pgsql を実行して出てきたSQLnkfをかけてUTF-8にするというまわりくどいことをやってみたところ、うまくいきました。