首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有中文文件名的Prelude.writeFile

具有中文文件名的Prelude.writeFile
EN

Stack Overflow用户
提问于 2012-04-17 12:22:12
回答 2查看 286关注 0票数 2

我正在测试一些喜欢将内容输出到文件中的东西,它有一个中文名。

该文件将以正确的内容而不是文件名成功创建。

我看一下函数writeFile^1,它使用String表示文件名。所以我怀疑这可能是根本原因。

代码语言:javascript
复制
    file :: FilePath
    file = "上海万达影城.html"

    content :: String
    content = "<h1>hello</h1>"

    write2File :: IO ()
    write2File = writeFile file content

谢谢你的帮助!

-Simon

  1. 我身边的GHC是7.0.2
  2. 升级前找到的解决办法。请参阅下面的详细信息,代码更改如下 导入合格的Codec.Binary.UTF8.String作为UTF8文件= UTF8.encodeString "上海万达影城.html“
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-17 12:30:47

String是Haskell中unicode代码点的列表。对unicode代码点列表的解释取决于系统。(您还需要一个不太老的GHC来支持这一点)。

不过,通常情况下,一旦您的地区设置正确,事情就会正常工作。

注:过去曾有过一些警告--例如旧的bug:System.Directory.getDirectoryContents unicode支持 --这可能涉及到解决办法。

票数 3
EN

Stack Overflow用户

发布于 2012-04-17 12:32:54

同时,您可以使用System.Posix.IO.ByteString模块。这将允许您将文件路径指定为字节字符串,因此您可以自己进行编码/解码。

这是一个已知的错误,并在7.2.1中修复。

http://hackage.haskell.org/trac/ghc/ticket/3307

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10191171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档