为什么是英镑符号'£';在Haskell中,显示为'\163';而不是输出'£';?

为什么是英镑符号'£';在Haskell中,显示为'\163';而不是输出'£';?,haskell,character-codes,Haskell,Character Codes,我正在尝试编写一个程序,在Haskell中写入磅符号“£”,但每当我尝试使用它时,它都会输出“\163”。我猜这是一些字母数字代码,但是如何让它显示我想要的内容呢?我正在向控制台写入代码,调用返回“*”的函数 谢谢。这是通过使用putStrLn解决的,因为print和show不允许显示非ASCII字符。您使用的是什么代码?您的终端是否能够显示非ASCII字符?pennies2pounds::Int->Stringpennies2pounds pennies=“£”++显示磅++”“++显示便士其

我正在尝试编写一个程序,在Haskell中写入磅符号“£”,但每当我尝试使用它时,它都会输出“\163”。我猜这是一些字母数字代码,但是如何让它显示我想要的内容呢?我正在向控制台写入代码,调用返回“*”的函数


谢谢。

这是通过使用putStrLn解决的,因为
print
show
不允许显示非ASCII字符。

您使用的是什么代码?您的终端是否能够显示非ASCII字符?
pennies2pounds::Int->String
pennies2pounds pennies=“£”++显示磅++”“++显示便士
其中
(磅,便士)=divMod pennies 100
我正在使用ghci在Windows的命令提示符中加载程序,然后用整数调用pennies2pounds。您可能正在
显示
字符串或
打印
字符串,这会添加额外的引号并转义所有非ASCII字符。在GHCi中,如果只想输出字符串,请使用
putStrLn(字符串返回表达式)
。例如,
putStrLn(pennies2pounds 100)
谢谢,解决了这个问题。我从来不知道
print
show
转义非ASCII字符。
print
调用
show
,后者总是输出ASCII字符串,表示Haskell语法所做的值。例如,
show“abc”==“abc\”
。更重要的是,
show
print
获取一个值,该值是
show
的一个实例,并返回或输出一个计算结果为该值的Haskell表达式,在这种情况下,
Char
ord
是163。