如何用重音词(西班牙语)解析HTML页面而不丢失它们?

The*_*ten 2 haskell character-encoding hxt

我正在阅读一个包含文字重音词(西班牙语)的HTML网页:

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Web page</title>
<body>
<p>Título</p>
<p>Año</p>
<p>Ángel</p>
<p>¿por qué nos vamos?</p>
</body>
Run Code Online (Sandbox Code Playgroud)

我正在使用HXT:

...
let doc = readDocument [ withValidate no
                       , withInputEncoding iso8859_1
                       , withParseHTML yes
                       , withWarnings no
                       , withEncodingErrors no
                       , withCurl []] url
...
Run Code Online (Sandbox Code Playgroud)

使用选项

withInputEncoding utf8

丢弃这些字符,得到以下字样:Ttulo,Ao,ngel,por qunos vamos? 使用选项

withInputEncoding iso8859_1

将这些字符转换为字符串,得到结果如:Rom\225ntica,Man\180s,H\233ctor.其中\ 225,\ 180\ 233字符串,而不是字符.

在HXT中正确管理这种情况并获得所有单词而不进行修改的最佳方法/方法/方法是什么?

谢谢.

Yur*_*ras 6

我打赌你已经拥有了你需要的一切

Prelude> putStrLn $ read "\"Rom\225ntica\""
Romántica
Run Code Online (Sandbox Code Playgroud)

看起来你正在寻找show应用于字符串的结果,而不是字符串本身?注意print使用show:

Prelude> print (read "\"Rom\225ntica\"" :: String)
"Rom\225ntica"
Run Code Online (Sandbox Code Playgroud)