2015-05-03 191 views
0

所以首先,我不是在談論蟒蛇html2text但該命令行工具:http://www.mbayer.de/html2text/html2text:轉換特殊字符

我使用這個工具,我PROGRAMM的一部分,以產生一些小的文本預覽爲HTML文章。 到現在爲止,這是我使用的線路:

html2text -utf8 -nobs -style pretty filename.html 

不幸的是我現在對面即是使用像

ä 

這些特殊字符不被轉換爲「A」的HTML代碼來了,甚至「ae」像預期的那樣。

例如行:

<p class="caption">Steve Ballmer, Jahrgang 56, wird zumindest auf diesem Bild auf 56 Jahre gesch&#xE4;tzt. </p> 

應轉換爲:

Steve Ballmer, Jahrgang 56, wird zumindest auf diesem Bild auf 56 Jahre geschätzt. 

但在這裏會產生這條線來代替:

Steve Ballmer, Jahrgang 56, wird zumindest auf diesem Bild auf 56 Jahre gesch&#xE4;tzt. 

文檔說:

默認情況下,當提供-nometa,html2text使用ISO 8859-1的輸入。指定此選項,UTF-8來代替(包括用於輸入和輸出)。

所以我試着不用「-utf8」並使用「-nometa」。但是還是一樣的結果:( 我失去了一個選擇嗎?

THX對您的幫助提前。

+0

該文檔還寫着「HTML 4的大部分結構都renderred [原文],以及包括最SGML實體,只要它們寫成‘命名實體’,而不是一個數值」,這表明這是一個已知的限制。 –

回答

0

你嘗試(HTML)整齊?

tidy filename.html | html2text -utf8 -nobs -style pretty 

可能包括錯誤輸出的抑制:

tidy filename.html 2>/dev/null | html2text -utf8 -nobs -style pretty 

至少在你的例子簡單的段落完成

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<html> 
<head> 
<meta name="generator" content= 
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org"> 
<title></title> 
</head> 
<body> 
<p class="caption">Steve Ballmer, Jahrgang 56, wird zumindest auf 
diesem Bild auf 56 Jahre gesch&auml;tzt.</p> 
</body> 
</html>