[Haskell-cafe] printing unicode in Windows console: hPutChar error

Julian Bradfield jcb at inf.ed.ac.uk
Fri Nov 5 18:21:26 UTC 2021

Some of my poor misguided students are still using Windows, and when
they run my (predecessor's) Haskell program which uses Unicode box drawing
characters in its output, they get
*** Exception <stdout>: hPutChar: invalid argument (invalid character)

Another student told them to change the console encoding via magic:
chcp.com 65001

but a bit of googling suggests that a "modern Windows console program"
should be using the widechar API to print Unicode and things should
Just Work.

Does Haskell have a principled view about character encodings?
Or does it just say "I do byte strings, it's the user's problem"?

Decades ago I was all in favour of charset-agnosticism, but these
days I tend to think "go Unicode, and leave the legacy Latin-1
etc. data as the user's problem" :)


The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

More information about the Haskell-Cafe mailing list