我在haskell中使用包utf8-string
输出utf-8并仅使用此包的输出函数。
我以这种方式设置我写的每个文件的编码:
hSetEncoding myFile utf8
{- myFile may be stdout -}
但是当我尝试输出时:
alpha = [toEnum 0x03B1] {- α -}
而不是我在Linux上(或在Windows上的文件中)得到的漂亮的字母,我得到以下内容:
α
奇怪的是,即使我尝试在文件上写输出,我也无法将其作为utf-8文件用mvim读回来。有没有办法获得正确的行为
答案 0 :(得分:3)
刚才在GHC 6.12上尝试过这个。新的编码功能消除了这一需求
在这个简单的例子中utf8-string
。
import System.IO
main = do
out alpha stdout
alpha = [toEnum 0x03B1] {- α -}
out s handle = do
hSetEncoding handle utf8
hPutStrLn handle s
如果这对您在OS X上有效,请告诉我。请在下次发布完整代码 - 这会让我更容易为您提供帮助。
答案 1 :(得分:1)
至少有两件事你必须确定:
alt text http://files.droplr.com.s3.amazonaws.com/files/35740123/15WO3z.Picture%2026.png