无法将字符串从"UTF-8"转换为本机编码

mar*_*kus 11 eclipse svn diff javahl

当我尝试在eclipse中比较我的项目时,我收到以下错误消息(Team-> Compare):

(无法将字符串从'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
***
Run Code Online (Sandbox Code Playgroud)

但是,如果我运行命令:

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
Run Code Online (Sandbox Code Playgroud)

在mac os上使用命令行,diff工作没有问题.根据我的阅读,当客户端从存储库收到UTF-8字符串时,通常会发生这样的错误,但并不是所有字符串的字符都可以在当前语言环境的编码中显示."locale"的输出是:

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=
Run Code Online (Sandbox Code Playgroud)

似乎eclipse不使用这些设置,是否还有其他方法可以在eclipse中配置区域设置?我不确定,但问题可能与javaHL有关,是否有某个跟踪文件?

Abs*_*ind 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在哪里)

    输入ä您的终端并检查输出.你应该看到ä可读的字符.从我的输出可以看出,字符应编码为\ 303\244而不是\ 195\164(303是十进制195的八进制表示,244(oct)== 164(十进制))

    $ ä
    bash: $'\303\244': command not found
    
    Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.