我正在测试一些喜欢将内容输出到文件的内容,该文件具有中文名称。
使用正确的内容但不是文件名成功创建文件。
我看一下函数writeFile
^1,它使用String
表示文件名。
所以我怀疑这可能是根本原因。
file :: FilePath
file = "上海万达影城.html"
content :: String
content = "<h1>hello</h1>"
write2File :: IO ()
write2File = writeFile file content
谢谢你的帮助!
-Simon
---------------------更新了
升级前找到的解决方法。请参阅下面的详细信息和代码更改
import qualified Codec.Binary.UTF8.String as UTF8
file = UTF8.encodeString "上海万达影城.html"
答案 0 :(得分:3)
String是Haskell中的unicode代码点列表。该unicode代码点列表的解释取决于系统。 (你还需要一个不太旧的GHC来支持这个)。
一般情况下,一旦你的语言环境设置正确,一切正常。
N.B。过去一直有警告 - 例如旧的错误:System.Directory.getDirectoryContents unicode support - 可能涉及变通方法。
答案 1 :(得分:0)
与此同时,您可以使用System.Posix.IO.ByteString
模块。这将允许您将文件路径指定为字节字符串,因此您可以自己进行编码/解码。
这是一个已知错误,已在7.2.1中修复。