我正在使用Haskell编写解析器,但是这个错误让我无法继续下去。以下是我的代码:
main = do
arguments <- getArgs
let fileName = head arguments
fileContents <- readFile fileName
converter <- open "UTF-8" Nothing
let titleLength = length fileName
titleWithoutExtension = take (titleLength - 4) fileName
allNonEmptyLines = unlines $ tail $ filter (/= "") $ lines fileContents
当我尝试使用“US-ASCII”编码读取文件时,我遇到了著名的错误 hGetContents: invalid argument (invalid byte sequence)。我已经尝试通过将代码中的“UTF-8”更改为“US-ASCII”,但是错误仍然存在。是否有一种方法可以读取这些文件或解决任何类型的文件处理编码问题?
withFile
,因为我认为它可以让我省去手动关闭句柄的步骤。 - somesoaccounthGetContents
会在你消耗完所有输入后关闭它。 - ErikR