Encoding issue

2012-01-08
2013-06-12
  • Hi everyone,

    and first of all : thanks a lot for Console. It rocks. But I still have a couple of problems with it.

    I don't use windows a lot beside games, and I do use cmd/console even less. All I do with console is opening some ssh session and/or using git.

    And to have a git binary set along with a ssh binary (including sh and bash), I've installed the awesome msysgit. And so I don't rely on cmd anymore : I've set up Console to start sh -login -i instead of cmd.exe. This way I get everything I want, including ssh sessions, etc.

    But, everything's not fine, and I do have an encoding problem… I've not tried with git, but with ssh, (and sh, as I understand it), utf-8 characters are not correctly printed out.

    I've monitored Console + sh with process explorer, and it seems to NOT use cmd at all. But yet I've seen a ConsoleHook.dll file in the Console folder… So Console might actually use cmd, even if I configured it to not use it.
    So here comes my question : does Console use cmd in ANY case, or does it, in my case, use sh (sh.exe indeed) instead ?

    Thank you for your answers.

     
  • Kirill
    Kirill
    2012-01-08

    Console does not use cmd if your tab has "sh.exe" as the shell. However, sh uses a console window (the same as the one used by cmd), which is the reason Console "cannot" support 256 colors (which is not the point here :)

    There are couple possible explanations for encoding problems.
    One: wrong font is used by that console window. To fix: in Console, View > Console Window; in the opened window, System Menu > Properties > Font and choose a TrueType font. If asked to preserve for future sessions, answer Yes.

    Two: wrong code page. To fix globally, change Code Page for Non-Unicode applications on the Advanced tab of Regional and Language Settings control panel (instructions are OS-specific, please, specify your OS if you need help). To fix just for that one bash instance: execute "cmd", execute "chcp 866" (or any other cp of your choice), execute "exit" . Admittedly, it's a hard problem because console windows in Windows have troubles with UTF-xx.

    P.S. msysGit is indeed awesome!

     
  • Okay. I've tried it with the git bash and it gives the same results : é in UTF-8 is returned as "Ac" in current encoding (chcp returns 437). It seems that it's MinGW bash which screws : when I set up the correct encoding page (65001) in cmd, with the correct font (Lucida Console), I see the correct character. But when I ssh with this configuration, it freezes. But only with ssh, not with type in CMD, for example.