我有一个像 "\3619\3657\3634\3609\3648\3592\3657\3648\3621\3657\3591"
这样的字符串,我想对其进行解码。我尝试搜索 unicode 库但没有成功。
最佳答案
请注意,您实际上没有字符串 "\3619\3657\3634\3609\3648\3592\3657\3648\3621\3657\3591"
- 相反,您有 UTF-32 字符串 ร้านเจ้เล้ง
,其中 "\3619\3657..."
恰好是符合 ASCII 的文字。默认情况下,GHCi 使用 Show
实例来显示结果,它不会显示事物,而是吐出可以用作事物的 Haskell 代码的文字。它在 unicode 方面是保守的。这就是为什么
另一方面, putStrLn
、 putChar
、 hPutStr
等函数只会将字符串本身转储为 UTF-8 而不是其 ASCII 安全表示。
如果您实际上是从文件或其他内容中读取转义字符串,则可以简单地读取它:
关于haskell - 如何在 Haskell 中将 Unicode 转义序列转换为 Unicode 字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24953125/