Git错误:格式错误的输入或输入包含不可映射的字符

时间:2014-03-14 18:52:04

标签: eclipse git character-encoding runtime-error filenames

我的Eclipse工作区有两个项目,一个使用CVS,另一个使用Git。修改CVS项目中的文件并保存时,会出现一个弹出窗口

An internal error occurred during: "Computing Git status for repository repo23".
Malformed input or input contains unmappable chacraters: /Users/pb/repo23/对照表/feng11.htm

知道如何解决这个问题吗?

编辑:

Eclipse平台

版本:4.3.1.v20130911-1000 构建ID:M20130911-1000

Eclipse EGit 3.2.0.201312181205-r

2 个答案:

答案 0 :(得分:7)

您可以在this issue中看到确切的调用堆栈:

java.nio.file.InvalidPathException: Malformed input or input contains unmappable chacraters: /Users/jettykoo/Desktop/WeTeam/Git/WSS/MaryKay/Doc/01/.DS_Store
    at sun.nio.fs.UnixPath.encode(UnixPath.java:147)
    at sun.nio.fs.UnixPath.<init>(UnixPath.java:71)
    at sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:281)
    at java.io.File.toPath(File.java:2186)
    at org.eclipse.jgit.util.FileUtil.isFile(FileUtil.java:126)
    at org.eclipse.jgit.util.FileUtil.canExecute(FileUtil.java:131)

我对sun/nio/fs/UnixPath.java中的拼写错误感到惊讶:&#39; chacraters&#39;而不是&#39;字符&#39;!

this NetBeans issue中所述(在Eclipse上下文中应该相关):

  

它是 JDK issue ,部分也是Apple问题(默认情况下未设置LC_CTYPE)。
  终端中的行为取决于Terminal.app首选项。

     
      
  • 当终端导出LC_CTYPE设置为UTF-8时,它在终端中正常工作,因为sun.jnu.encoding设置为LC_CTYPE的值。
  •   
  • 如果未设置则无效。
  •   
     

设置sun.jnu.encoding的问题在于它可能会被JDK覆盖,因此导出LC_CTYPE=UTF-8会更安全。

     

而不是将-J-Dsun.jnu.encoding=UTF-8添加到netbeans.conf,而是将导出LC_CTYPE=UTF-8添加到其中。

您可以在eclipse.ini-DLC_CTYPE=UTF-8)中设置此内容。


Alexander Kachkaev提及in the comments

  

帮助我的是向eclipse.ini添加两行。

-DLC_CTYPE=UTF-8
-Dfile.encoding=UTF-8
  

团队命令停止提供错误

答案 1 :(得分:3)

上述属性对我不起作用。但是,设置这些环境变量确实:

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