我想在WinGHCi中输出非ascii字符,但这是我得到的:
Prelude> "?"
"\948"
Prelude> putStr "\948"
*** Exception: <stdout>: hPutChar: invalid argument (character is not in the code page)
Run Code Online (Sandbox Code Playgroud)
我在Windows XP上使用WinGHCi 7.0.3.我有什么办法让WinGHCi打印出一个漂亮的小三角洲?
我想从控制台读取一个包含特殊字符的字符串,如ö,ä,ü,μ......我试过:
做... ts < - getLine ...
但这对那些角色不起作用.例如,ö的unicode是\ 246,但是如果我使用getLine读取öhaskell读取"\ 195\182",并且putStr"\ 195\182"给我,这不是ö.这有什么问题?我是否需要其他功能来读取这些字符?
我在Windows XP上使用WinGHCi 7.0.3.如果有人可以帮助我,我会很高兴因为到目前为止我找不到任何东西.
@Judah Jacobson:
在输入任何其他命令之前我再次尝试了,并得到了这个:
Prelude> :m +System.IO
Prelude System.IO> hSetEncoding stdin utf8
Prelude System.IO> getLine
????
"\206\177\207\402\206\180\207\8224"
Prelude System.IO> putStr "\206\177\207\402\206\180\207\8224"
ασδφPrelude System.IO>
Run Code Online (Sandbox Code Playgroud)
我也试过了windows命令chcp 65001,但它没有改变任何东西,我已经在windows中激活了utf8.