windows - 让 Haskell 程序在 wine 下采用 UTF8 语言环境

标签 windows haskell character-encoding wine codepages

我正在尝试在 wine 上使用 GHC 来构建我的 Windows Haskell 应用程序之一。到目前为止,这运行良好,但我无法运行我的测试套件,它旨在在 UTF8 语言环境中运行(例如 LANG=C.utf8。)

不幸的是,在 wine 下,Haskell 运行时总是认为我想使用非 unicode 代码页:

$ wine ghc -e 'GHC.IO.Encoding.CodePage.localeEncoding'
CP850
$ LANG=C.utf8 wine ghc -e 'GHC.IO.Encoding.CodePage.localeEncoding'
CP437
$ LC_ALL=C.utf8 wine ghc -e 'GHC.IO.Encoding.CodePage.localeEncoding'
CP437

除了更改实际代码以设置所有句柄的编码之外:我如何让 Haskell 程序在这里使用 UTF-8(即代码页 65001)?

最佳答案

我这里没有 Wine/Haskell 设置,因此请多加注意。看起来GHC.IO.Encoding有什么可能是正确的:

setLocaleEncoding :: TextEncoding -> IO () 
utf8 :: TextEncoding

您可以尝试让您的测试程序在它们运行之前setLocaleEncoding utf8。这不是您想要的,但如果可行,似乎比为每个句柄单独设置更容易。

关于windows - 让 Haskell 程序在 wine 下采用 UTF8 语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33156758/

相关文章:

c++ - windows接收到中断的处理时间

haskell - 导入 Haskell 库,如 System.Random

dll - DLL函数上的Haskell外部导入stdcall

python - str.encode 期望输入什么?

php - 无法从 Windows 7 64 位 Apache 2.4 上的 PHP 5.5.4 连接到 LDAPS 服务器

java - 使用maven将java文件打包成exe for windows

windows - 最新版本 Chromium Embedded Framework 3

haskell - 获取堆栈以作为 --test-arguments 的一部分传递测试套件名称

java - 越南语的 JSP 字符集编码无法正确显示

c# - 从二进制文件读取字符串,不同的编码