我正在测试一些喜欢将内容输出到文件中的东西,它有一个中文名。
该文件将以正确的内容而不是文件名成功创建。
我看一下函数writeFile^1,它使用String表示文件名。所以我怀疑这可能是根本原因。
file :: FilePath
file = "上海万达影城.html"
content :: String
content = "<h1>hello</h1>"
write2File :: IO ()
write2File = writeFile file content谢谢你的帮助!
-Simon
?
发布于 2012-04-17 12:30:47
String是Haskell中unicode代码点的列表。对unicode代码点列表的解释取决于系统。(您还需要一个不太老的GHC来支持这一点)。
不过,通常情况下,一旦您的地区设置正确,事情就会正常工作。
注:过去曾有过一些警告--例如旧的bug:System.Directory.getDirectoryContents unicode支持 --这可能涉及到解决办法。
发布于 2012-04-17 12:32:54
同时,您可以使用System.Posix.IO.ByteString模块。这将允许您将文件路径指定为字节字符串,因此您可以自己进行编码/解码。
这是一个已知的错误,并在7.2.1中修复。
http://hackage.haskell.org/trac/ghc/ticket/3307
https://stackoverflow.com/questions/10191171
复制相似问题