Unicode windows console output.

David Sankel camior at gmail.com
Wed Nov 3 22:35:46 EDT 2010


On Wed, Nov 3, 2010 at 9:00 AM, Simon Marlow <marlowsd at gmail.com> wrote:

> On 03/11/2010 10:36, Bulat Ziganshin wrote:
>
>> Hello Max,
>>
>> Wednesday, November 3, 2010, 1:26:50 PM, you wrote:
>>
>>  1. You need to use "chcp 65001" to set the console code page to UTF8
>>> 2. It is very likely that your Windows console won't have the fonts
>>> required to actually make sense of the output. Pipe the output to
>>> foo.txt. If you open this file in notepad you will see the correct
>>> characters show up.
>>>
>>
>> it will work even without chcp. afaik nor ghc nor windows adjusts text
>> being output to current console codepage
>>
>
> GHC certainly does.  We use GetConsoleCP() when deciding what code page to
> use by default - see libraries/base/GHC/IO/Encoding/CodePage.hs.
>


This can actually be quite helpful. I've discovered that if you have a
console set to code page 65001 (UTF-8) and use WriteConsoleA (the non-wide
version) with UTF-8 encoded strings, the console displays the text properly!

So the solution seems to be, when outputting to a utf8 console use
WriteConsoleA.

David

-- 
David Sankel
Sankel Software
www.sankelsoftware.com
585 617 4748 (Office)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20101103/14555522/attachment.html


More information about the Glasgow-haskell-users mailing list