Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make Git properly display UTF-8 encoded pathnames in the console window?

Tags:

git

I have file names in UTF-8, git handles them O.K, it will create files properly and github pages also display it right. Except that it will display it in console like below. Is it possible to make git display UTF-8 encoded characters beyond ASCII 127 in console properly?

git status # On branch master # Changes not staged for commit: #   (use "git add <file>..." to update what will be committed) #   (use "git checkout -- <file>..." to discard changes in working directory) # #       modified:   .gitignore #       modified:   editfile.js #       modified:   "\321\203\321\201\321\202\320\260\320\275\320\276\320\262" # no changes added to commit (use "git add" and/or "git commit -a") 

UPDATE

I have been asked about my locale, here is the output of locale command

LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 
like image 489
exebook Avatar asked Apr 03 '14 03:04

exebook


People also ask

How do I view a UTF-8 file?

Open the file in Notepad. Click 'Save As...'. In the 'Encoding:' combo box you will see the current file format. Yes, I opened the file in notepad and selected the UTF-8 format and saved it.

What encoding does git use?

Git recognizes files encoded in ASCII or one of its supersets (e.g. UTF-8, ISO-8859-1, … ​) as text files.


1 Answers

git has always used octal utf8 display, and one way to show the actual name is by using printf in a bash shell.

According to this comment, this works even in a Windows msysgit bash, which does include printf (and can be used as in "How do I use octal characters in a git checkout?").

But that doesn't change the output of commands like git status or git ls-files. However, since Git 1.7.10 introduced the support of unicode, this wiki page mentions:

By default, git will print non-ASCII file names in quoted octal notation, i.e. "\nnn\nnn...". This can be disabled with:

 git config core.quotepath off 

Or for all repositories using:

 git config --global core.quotepath off 

Keep in mind that:

The default console font does not support Unicode. Change the console font to a TrueType font such as Lucida Console or Consolas.
The setup program can do this automatically, but only for the installing user.

like image 141
VonC Avatar answered Sep 22 '22 09:09

VonC