有什么好的工具可以将HTML文档中的HTML实体转换为普通的UTF字符吗?

时间:2010-10-26 05:30:46

标签: html windows xhtml

我有许多HTML文档,其中包含许多Unicode代码点表示的HTML实体,例如بروح

是否有一个很好的工具可以将多个HTML文档中的HTML实体转换为纯UTF-8 / UTF-16 / UTF-32字符?

我想要一个可以为此目的执行批处理作业的离线转换工具。

2 个答案:

答案 0 :(得分:4)

我不知道这样的工具,但你可以很容易地写一个。例如,这个C#代码将转换当前文件夹中的所有html文件:

foreach (string name in Directory.GetFiles(".", "*.html")) {
  string s = File.ReadAllText(name);
  s = Regex.Replace(
    s,
    @"&#(\d+);",
    m => ((char)Int32.Parse(m.Groups[1].Value)).ToString()
  );
  File.WriteAllText(name, s);
}

答案 1 :(得分:1)

GNU实用程序“recode”将使用调用

执行此操作
  

重新编码HTML..UTF-16LE< old.html> new.html

(当然还是UTF-16BE。)

http://ftp.gnu.org/gnu/recode/recode-3.6.tar.gz

它使用HTML作为字符集有点像hack并被视为ASCII或LATIN-1,当它被视为任何字符集的“表面”时。如果有任何UTF-8字符,它可能会中断,所以我现在撤回我的建议。使用第一个。

(您可能希望recode UTF-8..HTML,HTML..UTF-16LE能够正常工作,但这首先会对&符号进行编码......)