4
我使用Haskell編程解析器,但是這個錯誤是我無法通過的牆。這裏是我的代碼:在Haskell中使用「US-ASCII」編碼讀取文件:hGetContents:無效參數(無效字節序列)
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:無效的參數(無效字節序列)。我試圖通過「US-ASCII」在我的代碼中更改「UTF-8」,但錯誤仍然存在。有沒有辦法讀取這些文件,或任何類型的文件處理編碼問題?
只是好奇:爲什麼沒有必要關閉句柄?就在本週我使用'withFile',因爲我認爲這可以節省我手動關閉句柄。 – somesoaccount
因爲'hGetContents'會在您消耗完所有輸入後關閉它。 – ErikR
@ErikR現在我的程序正常運行!謝謝。請你能告訴我其他的可能性嗎? – freinn