UTF-8
From HaskellWiki
The simplest solution seems to be to use the utf8-string package from Galois. It provides a drop-in replacement for System.IO
import System.IO.UTF8
import Prelude hiding (getContents, putStrLn)
main =
do putStrLn "what is your name? "
name <- getContents
putStrLn $ "hello, " ++ name ++ "!"