http://bugs.winehq.org/show_bug.cgi?id=13819
Summary: Wrong codepage used for console output Product: Wine Version: CVS/GIT Platform: Other OS/Version: other Status: NEW Severity: normal Priority: P2 Component: kernel32 AssignedTo: wine-bugs@winehq.org ReportedBy: fgouget@codeweavers.com
To reproduce this problem, run the following command (that's assuming you have a UTF-8 xterm, otherwise replace UTF-8 with ISO-8859-1 or the appropriate encoding):
LANG=fr_FR.UTF-8 ./programs/start/start /help
You will notice that all the accentuated characters are missing. This is because start.c converts the Unicode resource string to the GetConsoleOutputCP() encoding in the output() function. I think that's correct but GetConsoleOutputCP() systematically return "850" as the codepage, even if I change the [Nls\Codepage]/OEM value in the registry.
One hack to fix this is to replace the GetConsoleOutputCP() call with CP_UNIXCP but I guess that would be wrong in the case where we're running in the Wine console.
So I think that when the console is a regular Unix terminal GetConsoleOutputCP() should return the CP_UNIXCP codepage.