gpt4 book ai didi

haskell:从控制台读入特殊字符

转载 作者:行者123 更新时间:2023-12-04 15:03:21 35 4
gpt4 key购买 nike

我想从控制台读取一个字符串,其中包含特殊字符,如 ö、ä、ü、μ... 我试过了:

做 ...
ts <- 获取线
...

但这对那些角色不起作用。例如,ö 的 unicode 是\246,但如果我使用 getLine 读取 ö,haskell 读取“\195\182”,而 putStr“\195\182” 给我 ö,这不是 ö。这里有什么问题?我需要另一个函数来读取这些字符吗?

我在 windows xp 上使用 WinGHCi 7.0.3。如果有人可以帮助我,我会很高兴,因为到目前为止我还没有找到任何东西。

@犹大雅各布森:

在输入任何其他命令之前,我再次尝试了它,并得到了这个:

Prelude> :m +System.IO
Prelude System.IO> hSetEncoding stdin utf8
Prelude System.IO> getLine
ασδφ
"\206\177\207\402\206\180\207\8224"
Prelude System.IO> putStr "\206\177\207\402\206\180\207\8224"
ασδφPrelude System.IO>

我也尝试了 windows 命令 chcp 65001 但它没有改变任何东西,我已经在 windows 中激活了 utf8。

最佳答案

由于 GHC 6.12 字符串在输入和输出中被处理为 UTF8(或使用其他编码,取决于您的语言环境设置)。因此,请确保您的语言环境设置为例如UTF8。

您也可以通过 text 手动控制这些东西。包,它支持许多其他语言环境约定和编码。

关于haskell:从控制台读入特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7371978/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com