无法从“UTF-8”字符串转换为本地编码(Can't convert string from

2019-07-30 20:41发布

我收到的时候我尝试我的项目比较蚀(Team->比较)出现以下错误信息:

(无法从“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命令行中,DIFF工作没有问题。 从我已阅读,这样的错误通常发生在客户已收到来自库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的问题,是有一个跟踪文件的地方?

Answer 1:

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(DEC))

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

希望这可以帮助。



文章来源: Can't convert string from 'UTF-8' to native encoding