我相当确定不久前 GHC 添加了在Handle
. 但是,当我查看时System.IO
,我看不到任何与字符编码有关的内容。(我有 Haskell 平台 2012.4.0.0)
我是盲目的,还是只是弄错了?
我相当确定不久前 GHC 添加了在Handle
. 但是,当我查看时System.IO
,我看不到任何与字符编码有关的内容。(我有 Haskell 平台 2012.4.0.0)
我是盲目的,还是只是弄错了?
我调查了函数隐藏的位置。
摘要:确保System.IO
从包库中使用,而不是从包 haskell2010 中使用。
详细信息: Hoogle 告诉我System.IO.hSetEncoding
在最新的基础包中有。
检查有关 Haskell 平台 2012.4.0.0 的文档,我System.IO
从haskell2010
包中看到了一个模块。而且该模块似乎不包含hSetEncoding
.
不过不要绝望,似乎还有System.IO
包含 的 from base hSetEncoding
。
所以我想你只需要确保你使用System.IO
来自基础而不是来自haskell2010。
我的天啊!
好的,我刚刚想通了。
System.IO
-base
包和haskell2010
包。base
包含所有字符编码内容。System.IO
其中包含的版本haskell2010
- 没有所有字符编码的东西。看来查看版本的唯一方法base
是单击从中导出的其他模块,然后单击“内容”,然后从那里base
导航到。然后它会向您显示正确的模块!System.IO
违反直觉,很多吗?o_O
好的,所以我现在找到了我的功能,但是伙计,黑线鳕应该在处理这个晦涩的边缘情况方面做得更好......