chr232不返回字符è
对chr 232回报的评估'232'而不是'è'.
当然,我期待(chr . ord) 'è'回来'è'。相反,我得到了'232'
有人可以解释这里发生了什么吗?
回答
Haskell中会显示为表示一个字符反斜杠(的后跟与十进制码点对大多数非ASCII字符)。的表示一个的Char也将与单引号包围('…')。
如果要打印字符串的内容,可以使用putChar :: Char -> IO ():
Prelude Data.Char> putChar (chr 232)
èPrelude Data.Char>
或者您可以将它包装在一个单例列表中并使用putStrLn该字符打印一行:
Prelude Data.Char> putStrLn [chr 232]
è