5

cmd.exe で subversion を使用してリビジョンをコミットしようとしています。cmd.exe のコードページは utf-8 (で設定chcp 65001) です。

c:\path\to\work\dir> svn ci

-mフラグでメッセージを指定しておらず、変数がgvimSVN_EDITORに設定されているため、gvim が開き、メッセージを入力できます。ファイルをutf-8 ( ) として保存し、エディターを終了します。:set filencoding=utf8

さて、svn クライアント (?) は私に次のように伝えます: Auf ... .folgte ein nicht-ASCII Byte 195, das nicht von/nach UTF-8 konvertiert werden konnte(私は英語で次のように信じています:非 ASCII 文字 (コード %d) が検出され、UTF-8 との間で変換できません)。

保存したメッセージ ファイルが UTF-8 形式であることは確かなので、これは奇妙です。

私もlatin-1に保存しようとしましたが、同じ効果がありました。

編集

メッセージでテストを行いましたü。ファイルの 16 進数の内容は次のとおりです。

0000000: c3bc 0d0a 2d2d 2044 6965 7365 2075 6e64  ....-- Diese und
0000010: 2064 6965 2066 6f6c 6765 6e64 656e 205a   die folgenden Z
0000020: 6569 6c65 6e20 7765 7264 656e 2069 676e  eilen werden ign
0000030: 6f72 6965 7274 202d 2d0d 0a0d 0a41 2020  oriert --....A
0000040: 2020 780d 0a                               x..

最初の for 文字 (üその後に\x0d\x0a) に注意してください。üは、目的の. _ c3 bc_ _ü

また、エラー メッセージ (この新しいケースでは: ) は 195 (ファイルの最初のバイトである のEin Nicht-ASCII Zeichen (Kode 195) wurde gefunden, das nicht von/nach UTF-8 konvertiert werden konnte10 進数) について不平を言っていることに注意してください。c3もちろん、エラー メッセージは正しいです。それは ASCII 文字ではありませんが、これが utf-8 ファイルを使用するすべてのポイントではないでしょうか?

編集 2

メッセージを UTF-8 形式でコミットしようとしたのは、これが最も自然なことだと信じていたからです。明らかに、少なくとも cmd.exe の SVN はそうは考えていません。üおよびその他のドイツ語の特殊文字をコミットできる限り、メッセージをコミットする必要がある形式はあまり気にしませんでした。

4

4 に答える 4

0

うまくいくかどうかはわかりませんが:set bomb、gvim で使用して、保存時にファイルに BOM を含めることもできます。一部のプログラムは、BOM を使用して、Unicode を使用する必要があることを検出します。SVN がそのカテゴリに該当するかどうかはわかりません。

于 2013-11-07T16:05:55.783 に答える
0

追加する.bashrc(または類似する)

export LANG="de_DE.utf8"
export LANGUAGE="de_DE.utf8"
export LC_ALL="de_DE.utf8"

svn は環境で定義されたエンコーディングを使用します

于 2015-11-29T23:12:22.197 に答える
0

Windows用のiconvを試すことができます:

変換前のファイル:

ü
-- Diese und die folgenden Zeilen werden ignoriert --

16進ダンプ:

00000000 c3 bc 0d 0a 2d 2d 20 44 69 65 73 65 20 75 6e 64 |ü..-- Diese und |
00000010 20 64 69 65 20 66 6f 6c 67 65 6e 64 65 6e 20 5a | ダイフォルゲンデン Z|
00000020 65 69 6c 65 6e 20 77 65 72 64 65 6e 20 69 67 6e |アイレン・ウェルデン・イグニ|
00000030 6f 72 69 65 72 74 20 2d 2d 0d 0a |oriert --..|

変換コマンド:

<utf8.txt iconv -f utf-8 -t 850>ascii.txt

結果:

ü
-- Diese und die folgenden Zeilen werden ignoriert --

16進ダンプ:

00000000 81 0d 0a 2d 2d 20 44 69 65 73 65 20 75 6e 64 20 |...-- Diese und |
00000010 64 69 65 20 66 6f 6c 67 65 6e 64 65 6e 20 5a 65 |die folgenden Ze|
00000020 69 6c 65 6e 20 77 65 72 64 65 6e 20 69 67 6e 6f |アイレン・ウェルデン・イグノ|
00000030 72 69 65 72 74 20 2d 2d 0d 0a |リエルト --..|

コードページは常に 850 でした。

于 2013-11-07T17:50:19.783 に答える