C# Cvs library で文字コードが変わる?
昨日の日記で、C# Cvs library を使って MSBuild タスクを作ってみたと書いたのですが、この C# Cvs library 、どうもサーバーから落としてくるときに文字コードを変えてしまっているような気がします。深く探っていないので全然うそを言っているかもしれませんが。
どこでそう思ったかというと、定義ファイルを XML で書いているのですが、そいつが読み込めなくなってしまっていたからなのです。 UTF-8 で保存しているのですが、確かめてみるとなぜか Shift-JIS になっていました。TortiseCVS を使ってチェックアウトしてくるとしっかりと UTF-8 で落ちてきます。しかし、 MSBuild 越しに C# Cvs library の cvs.exe をたたくと Shift-JIS になってしまってます。コマンドラインから直接 cvs.exe をたたいても Shift-JIS になってしまってました。
ためしに TortiseCVS についている cvs.exe を使ってみました。コマンドラインの構文は一緒なので置き換えるだけで MSBuild タスク自身は動作できるのです。結果は問題なく UTF-8 で保存されました。やはり C# Cvs library の cvs.exe が怪しいのか・・・。
TortiseCVS についている cvs.exe を使うのがベターなような気もしますが、ライセンス的に不明なところがあるので、手放しで使うのには気がひけてしまいます。とりあえず、本家 CVS から正式版?をダウンロードしてみます。こいつは GNU GPL なので問題ないはず。しかも本家 CVS の cvs.exe であれば、 MSBuild タスクもいろいろと機能アップできますね。 C# Cvs library の cvs.exe は未実装の部分もあり、本当に使いたいところ(今のところは export )ができなかったりしますので。