0

カスタムソース管理からgitにコードを移行するユーティリティを作成しようとしています。

古いシステムの「commit」メッセージはプロジェクトパスのテキストファイルに段階的に追加されたため、gitを使用してこれらのファイルをあるバージョンから次のバージョンに差分し、その差分をコミットメッセージとして使用しています。

当然のことながら、アクセントに問題があります。

テスト文字列は次のとおりです。éèàçüûöôëê

  1. ソーステキストファイルは(Notepadが教えてくれます)「ANSI」にあります。
  2. msysgitでdiffを実行すると、これが表示されます<E9><E8><E0><E7><FC><FB><F6><F4><EB><EA>
  3. 同じdiffコマンドを使用してgitへのProcess呼び出しを実行すると(この質問を参照)、次のようになります。
    1. ÚÞÓþ³¹÷¶ÙÛ
    2. ����������と、この質問StandardOutputEncoding = Encoding.UTF8ごとに。
    3. éèàçüûöôëêStandardOutputEncoding = Encoding.Default

これまでのところ、とても良いですがéèàçüûöôëê、コミットメッセージとして返送すると、gitは私に教えてくれますWarning: commit message does not conform to UTF-8.

これを機能させる方法についてのポインタはありますか?この質問では、StandardInputでのエンコーディングの設定についても説明していますが、コミットメッセージは引数にあり、入力の一部ではありません。

(Gitは、構成変数を設定できるとも言っていますi18n.commitencodingが、可能であればgit形式を尊重したいと思います)

4

1 に答える 1

0

.net や Process、あるいは git とは何の関係もないようです。私が知る限り、とにかく bash でアクセントを入力する方法はありません。

また、git からの警告にもかかわらず、コミット メッセージは他のツール (gitk) で読み取ることができるため、すべてがうまくいっている可能性があります。

于 2010-06-22T10:54:45.630 に答える