11

Eclipse でプロジェクトを比較しようとすると ([チーム] -> [比較])、次のエラー メッセージが表示されます。

(文字列を 'UTF-8' からネイティブ エンコーディングに変換できません)

***
diff --old /Users/admin/Documents/workspace_branch_2.8/Test --new https://192.168.1.202/svn/main_repository/tenios/Voxtelo/bundle/trunk/Server/Test
    Invalid argument
svn: Kann Zeichenkette nicht von »UTF-8« in die eigene Codierung konvertieren:
svn: 
Eigenschafts?\195?\164nderungen: /Users/admin/Documents/workspace_branch_2.8/Test/src/main/java/org/test/test/internal/commands/Command.java

ZM-Schicht Anforderung gescheitert
svn: Fehler beim Lesen der Antwort auf die REPORT Anfrage von Festplatte
***

ただし、コマンドを実行すると:

svn diff --old /Users/admin/Documents/workspace_branch_2.8/Test --new https://192.168.1.202/svn/main_repository/tenios/Voxtelo/bundle/trunk/Server/Test

Mac OS でコマンド ラインを使用すると、差分は問題なく機能します。私が読んだことによると、このようなエラーは通常、クライアントがリポジトリから UTF-8 の文字列を受信したときに発生しますが、その文字列のすべての文字が現在のロケールのエンコーディングで表示できるわけではありません。「ロケール」の出力は次のとおりです。

LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL=

Eclipse はこれらの設定を使用していないようですが、Eclipse でロケール設定を構成する別の方法はありますか? よくわかりませんが、問題は javaHL に関連している可能性があります。トレース ファイルはどこかにありますか?

4

1 に答える 1

5

JavaHL は SVN の単なるラッパーです。私が見るように、JavaHL は svn コマンド (svn diff...) を呼び出し、返されたメッセージを解析します。実行しようとするコマンドは、この diff で一部のプロパティが変更されたという情報を返します (ドイツ語 Eigenschaftsänderung)。残念ながら、呼び出しを処理した端末がエンコーディングを台無しにしました。その結果、「RA レイヤー要求が失敗しました」(ZM-Schicht Anforderung gescheitert) が返されます。これは、返されたメッセージを JavaHL が解析できなかったことを意味します。

あなたが試すことができること:

  1. でEclipseを開始するLC_MESSAGES="en_US.UTF-8" /path/to/eclipse/eclipseと、JavaHLが英語のメッセージでsvn実行可能ファイルを呼び出す可能性があります

  2. Eclipse を起動するターミナルを確認してください。ユニコードに対応していますか?(rxvt にはありませんが、urxvt にはあります)

    ä端末に入力して、出力を確認します。ä読み取り可能な文字が表示されるはずです。私の出力からわかるように、文字は \195\164 ではなく \303\244 としてエンコードする必要があります (303 は 10 進数で 195 の 8 進数表現であり、244(oct) == 164(dec))

    $ ä
    bash: $'\303\244': command not found
    

お役に立てれば。

于 2012-08-15T00:47:42.697 に答える