gpt4 book ai didi

haskell - System.Directory.getDirectoryContents unicode 支持

转载 作者:行者123 更新时间:2023-12-01 16:33:22 25 4
gpt4 key购买 nike

以下代码打印类似 °Ð½Ð´Ð¸Ñ-ÐÑп¿Ð°Ð½Ð¸Ñ

getDirectoryContents "path/to/directory/that/contains/files/with/nonASCII/names"
>>= mapM_ putStrLn

看起来像是 ghc bug并且它已经在存储库中修复了。但是在每个人都升级 ghc 之前该怎么办?

我上次遇到这样的问题(这是几年前的事了,顺便说一句),我使用 utf8-string 包来转换字符串,但我不记得我是怎么做到的,而且 ghc unicode 支持最后明显改变了年。

那么,获取具有完整 unicode 支持的目录内容的最佳(或至少有效)方法是什么?

ghc版本7.0.4区域设置 en_US.UTF-8

最佳答案

这里有一个简单的解决方法,使用 decodeStringencodeString来自utf8-string .

import System.Directory
import qualified Codec.Binary.UTF8.String as UTF8

main = do
getDirectoryContents "." >>= mapM_ (putStrLn . UTF8.decodeString)
putStrLn "------------"
readFile (UTF8.encodeString "brøken-file-nåme.txt") >>= putStrLn

输出:

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

关于haskell - System.Directory.getDirectoryContents unicode 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6806686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com