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中配置locale设置?我不确定,但问题可能与 javaHL 有关,某处是否有跟踪文件?

4

1 回答 1

5

JavaHL 只是 SVN 的包装器。如我所见,JavaHL 调用 svn 命令(svn 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 的终端。它支持unicode吗?(rxvt 没有,而 urxvt 有)

    输入ä您的终端并检查输出。您应该看到äas readable 字符。正如您从我的输出中看到的,字符应编码为 \303\244 而不是 \195\164 (303 是十进制 195 的八进制表示,并且 244(oct) == 164(dec))

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

希望这可以帮助。

于 2012-08-15T00:47:42.697 回答