我相当确定不久前 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
好的,所以我现在找到了我的功能,但是伙计,黑线鳕应该在处理这个晦涩的边缘情况方面做得更好......