HSPDBを利用してデータベースの更新を行おうとしています。
データベース上の日本語データはすべてEUC-JPで書かれています。
入力する予定のデータもEUCです。
なので、そのまま送ればいっか、とたかをくくっていたのですが、HSPDBの挙動を見ていると、どうも送出予定のバッファ内のデータをそのまま送出はしておらず、バッファ内のデータはShift-JISで格納されているものとしてそれをUTF-8に変換して送出している?ように見えます。
送出する文字列が EUC だと、当然ながら化けてしまいました。
そこで、いったん送出予定の文字列をEUCから Shift-JISに変換して dbsend 命令に渡したところ、なんとか正しく送出できました。EUC→ShiftJIS→UTF-8→EUC とムダに変換しまくってるはずです。
ところが、UTF-8で送出されたデータをデータベースがEUCに変換しようとして、“〜”を変換できずにエラーとなってしまいます。
もとのデータをそのまま送出さえできれば、データベース側での文字コード変換も発生しないはずなので、このような不具合は発生しないと考えていますが、そのような方法はないでしょうか?
または、私なんか間違ったことやってるでしょうか(汗