git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: non-US-ASCII file names (e.g. Hiragana) on Windows

From
RDReece Dunn <msclrhd@googlemail.com>
Date
Nov 28, 2009, 23:37 UTC
Message-ID
<3f4fd2640911281537m3a3d7f5dl7836a613b48128f2@mail.gmail.com>
In-Reply-To
<4B1168D4.5010902@syntevo.com>
2009/11/28 Thomas Singer <thomas.singer@syntevo.com>:
Show 11 quoted lines
>
> When launching 'git status' from the git shell (msys 1.6.5.1.1367.gcd48 from
> 7zip-bundle) it only shows me 4 question marks. I would have expected to see
> the non-displayable characters escaped like it did with the umlauts on OS X.
>
> Even adding fails:
>
> $ git add .
> fatal: unable to stat '????': No such file or directory
>
> What should I do to make Git recognize these characters?

This is a bug in git's character encoding/conversion logic. It looks like git is taking the source string and converting it to ascii to be displayed on the console output (e.g. by using the WideCharToMultiByte conversion API) -- these APIs will use a '?' character for characters that it cannot map to the target character encoding (like the Hiragana characters that you are using).

SetConsoleOutputCP can be used to change the console output codepage [http://msdn.microsoft.com/en-us/library/ms686036%28VS.85%29.aspx] and SetConsoleCP is the equivalent for input [http://msdn.microsoft.com/en-us/library/ms686013%28VS.85%29.aspx]. e.g.

    SetConsoleCP(CP_UTF8);
    SetConsoleOutputCP(CP_UTF8);

should make the console process UTF-8 characters, so git shouldn't need to do any character conversions on Windows when reading/writing it's data.

NOTE: I have not tested this, just noting what I have found via Google.
- Reece
Previous: Thomas Singer
Message 27 of 27 in “non-US-ASCII file names (e.g. Hiragana) on Windows”
  1. Thomas SingerNov 28, 2009
  2. Johannes SixtNov 28, 2009
  3. Thomas SingerDec 1, 2009
  4. Thomas SingerDec 1, 2009
  5. Johannes SixtDec 1, 2009
  6. Shawn O. PearceDec 1, 2009
  7. Robin RosenbergDec 1, 2009
  8. Maximilien NoalNov 28, 2009
  9. Thomas SingerNov 29, 2009
  10. Thomas SingerDec 1, 2009
  11. Johannes SixtDec 1, 2009
  12. Thomas SingerDec 1, 2009
  13. Johannes SixtDec 1, 2009
  14. Thomas SingerDec 1, 2009
  15. Johannes SixtDec 1, 2009
  16. Thomas SingerDec 1, 2009
  17. Erik Faye-LundDec 1, 2009
  18. Thomas SingerDec 1, 2009
  19. brad12Oct 30, 2010
  20. Jakub NarebskiOct 30, 2010
  21. Jakub NarebskiDec 1, 2009
  22. Thomas SingerDec 1, 2009
  23. Shawn PearceDec 2, 2009
  24. demerphqOct 30, 2010
  25. Erik Faye-LundDec 1, 2009
  26. Thomas SingerDec 1, 2009
  27. Reece DunnNov 28, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.