Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git error: Malformed input or input contains unmappable chacraters

My Eclipse workspace has two projects, one using CVS, the other Git. When modifying a file in the CVS project and save, a pop-up window appear saying

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

Any idea how to fix this?

EDIT:

Eclipse Platform

Version: 4.3.1.v20130911-1000 Build id: M20130911-1000

Eclipse EGit 3.2.0.201312181205-r

like image 735
qazwsx Avatar asked Mar 14 '14 18:03

qazwsx


2 Answers

You can see the exact call stack in 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)

I was surprised by the typo in sun/nio/fs/UnixPath.java : 'chacraters' instead of 'characters'!

As mentioned in this NetBeans issue (which should be relevant in an Eclipse context):

it's a JDK issue and also partially also Apple issue (the LC_CTYPE is not set by default).
The behaviour in terminal depends on the Terminal.app preferences.

  • When the Terminal export LC_CTYPE set to UTF-8 it works fine in terminal as the sun.jnu.encoding is set to the value of LC_CTYPE.
  • When it's not set it does not work.

The problem with setting the sun.jnu.encoding is that it may be overwritten by the JDK, so it's safer to export the LC_CTYPE=UTF-8.

Rather then addding -J-Dsun.jnu.encoding=UTF-8 to netbeans.conf, prepend the export LC_CTYPE=UTF-8 to it.

You could set this in your eclipse.ini (-DLC_CTYPE=UTF-8).


Alexander Kachkaev mentions in the comments:

What helped me was adding two lines to eclipse.ini.

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

Team commands stopped giving errors

like image 132
VonC Avatar answered Oct 03 '22 22:10

VonC


The above properties didn't work for me. However, setting these environment variables did:

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"
like image 41
Sridhar Sarnobat Avatar answered Oct 03 '22 23:10

Sridhar Sarnobat