Haskell System.Directory.getDirectoryContents unicode支持

Haskell System.Directory.getDirectoryContents unicode支持,haskell,unicode,ghc,Haskell,Unicode,Ghc,下面的代码打印类似于的内容 getDirectoryContents "path/to/directory/that/contains/files/with/nonASCII/names" >>= mapM_ putStrLn 看起来它是一个ghc,并且已在存储库中修复。但在所有人升级ghc之前该怎么办 上一次我遇到这样的问题(顺便说一句,是几年前),我使用utf8字符串包来转换字符串,但我不记得我是如何做到的,去年ghc unicode支持发生了明显的变化 那么,在完全支持u

下面的代码打印类似于
的内容

getDirectoryContents "path/to/directory/that/contains/files/with/nonASCII/names"
  >>= mapM_ putStrLn
看起来它是一个ghc,并且已在存储库中修复。但在所有人升级ghc之前该怎么办

上一次我遇到这样的问题(顺便说一句,是几年前),我使用utf8字符串包来转换字符串,但我不记得我是如何做到的,去年ghc unicode支持发生了明显的变化

那么,在完全支持unicode的情况下获取目录内容的最佳(或至少有效)方法是什么

ghc 7.0.4版
locale en_US.UTF-8

这里有一个使用和来自的简单解决方法

输出:

.
..
brøken-file-nåme.txt
Broken.hs
------------
hello

我建议看一看,它提供了一个表示文件路径的抽象数据类型。我在一些内部代码中广泛使用了它,它工作得非常出色。

@Yuras:据我所知,
base
将转换为UTF8转换本身,因此如果使用适当版本的
base
,您可能希望使用条件编译来删除转换。谢谢。这就像
fixName=encodeString。fromText。T.pack
.
..
brøken-file-nåme.txt
Broken.hs
------------
hello