Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows haskell:输出非ascii字符_Windows_Haskell_Non Ascii Characters - Fatal编程技术网

Windows haskell:输出非ascii字符

Windows haskell:输出非ascii字符,windows,haskell,non-ascii-characters,Windows,Haskell,Non Ascii Characters,我想在WinGHCi中输出非ascii字符,但我得到的是: Prelude> "δ" "\948" Prelude> putStr "\948" *** Exception: <stdout>: hPutChar: invalid argument (character is not in the code page) 前奏曲>“δ” "\948" 前奏曲>putStr“\948” ***异常::hPutChar:参数无效(字符不在代码页中) 我正在windows x

我想在WinGHCi中输出非ascii字符,但我得到的是:

Prelude> "δ"
"\948"
Prelude> putStr "\948"
*** Exception: <stdout>: hPutChar: invalid argument (character is not in the code page)
前奏曲>“δ”
"\948"
前奏曲>putStr“\948”
***异常::hPutChar:参数无效(字符不在代码页中)
我正在windows xp上使用WinGHCi 7.0.3。
我该怎么做才能让WinGHCi打印出一个漂亮的小三角?

这是WinGHCi的bug。使用GHCI(控制台,非GUI版本)

UPD:这显然不完全正确(适用于我的希腊字母,而不是西里尔文)。

适用于OSX

Prelude> putStrLn "\948"
δ

听起来这是一个与haskell无关的windows问题…

您的控制台代码页是什么(使用
chcp
命令)?我有437,它可以工作。我有CP850,但我不能改变它。我在控制台中输入了CHCP437,但它始终保持在CP850。如果我将stdout设置为utf8,那么ghci会打印一些奇怪的字符,但不会打印增量。@Ingo:对我来说也不会,也会在W7上。@Ingo-Yay chcp 65001在Cygwin工作。你应该加上它作为答案。这怎么不是Haskell的问题呢?当然,GHCi应该能够正确地与其底层平台进行接口。其他程序以某种方式管理了这一不可思议的壮举。我想这不起作用,因为我目前的代码页。只是我不知道如何改变它,或者更好:如何让GHCi使用新的代码页。chcp命令无法解决问题。GHCi将字符赋予windows,windows抱怨它不知道如何处理,因为它不在当前代码页中。GHCi无法神奇地选择一个具有该角色映射的代码页。充其量,应该有一种通过FFI调用函数的方法,但这将取决于您,而不是GHCi。什么是FFl?我如何调用这个函数呢?外部函数接口,haskell代码调用其他语言编写的函数的一种方式。这是有案可查的。有一个维基页面。我从来没用过。你可以发布一个新问题。