我想使用Pandoc解析一个LaTeX-File并输出文本,如下所示:
import qualified Text.Pandoc as P
import Text.Pandoc.Error (handleError)
tex2Str = do
file <- readFile "test.tex"
let p = handleError $ P.readLaTeX P.def file
writeFile "A.txt" $ P.writePlain P.def p
writeFile "B.txt" $ file
虽然文件B.txt中的编码似乎是&#34;对&#34; (即uft-8),文件A.txt中的编码不正确。
这里是文件的相应摘录:
A.TXT:
...
Der _Crawler_ läuft hierbei über die Dokumentenbasis
...
B.txt:
...
\usepackage[utf8]{inputenc}
...
Der \emph{Crawler} läuft hierbei über die Dokumentenbasis
...
任何人都知道如何解决这个问题?为什么Pandoc使用错误的编码(我想,它默认使用utf-8)?
更新:
我得到了(部分)解决方案:使用readFile
和writeFile
- 来自Text.Pandoc.UTF8
的函数似乎解决了一些问题,即
import qualified Text.Pandoc as P
import Text.Pandoc.Error (handleError)
import qualified Text.Pandoc.UTF8 as UTF (readFile, writeFile)
tex2Str = do
file <- UTF.readFile "test.tex"
let p = handleError $ P.readLaTeX P.def file
UTF.writeFile "A.txt" $ P.writePlain P.def p
UTF.writeFile "B.txt" $ file
然而,我仍然没有弄清楚实际问题是什么,因为Prelude.readFile
和Prelude.writeFile
似乎都能发挥作用...