关于在制作.exe文件时Unicode字符的管理问题,这是否也是GHC中的一个错误?
> print "Frère"
"Fr\233re"
print x
相当于 putStrLn (show x)
,其中 show
将实现了 Show
类的类型转换为字符串表示形式。
在你的情况下,x 已经具有 String
类型。你可能会认为 show
的 String 实现只会简单地返回其参数不变,但实际上它将其转换为一个 ASCII 字符串文字标记,其语法与 Haskell 源代码中使用的相同。这是通过用引号括起来并转义“特殊”字符(基本上是不在键盘上的任何东西)来完成的。
因此,这不是一个 bug 而是 print
的预期行为。如果想直接输出字符串,请使用 putStrLn
。
尝试
> putStrLn "Frère"
Frère
mkTextEncoding
和"//TRANSLIT"
的内容开头。 - Jeremy List
show
的方法,可以处理Unicode而不将其转换为ASCII? - martinkunev