2015-05-03 148 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>