gpt4 book ai didi

html - 在 Perl 中读写未知编码的 XML 文件?

转载 作者:行者123 更新时间:2023-11-28 04:25:18 25 4
gpt4 key购买 nike

我正在挑选别人的大型项目的一部分,并试图纠正错误。问题是,我只是不确定正确的方法是什么。

所以,我正在 cURL 一堆 HTML 页面,然后使用简单的命令将其写入文件,例如:

$src = `curl http://google.com`;
open FILE, ">output.html";
print FILE $src;
close FILE;

现在我希望将它们保存为 UTF-8。它保存为什么?然后我使用相同的基本“打开”命令读取 html 文件,使用正则表达式调用解析 html,并使用字符串连接生成一个大字符串并将其写入 XML 文件(使用与上面相同的代码)。我已经开始改用 XML::Writer,但现在我必须检查并修复编码不正确的文件。

因此,我不再拥有 html,但我仍然拥有必须显示正确字符的 XML。这是一个例子:http://filevo.com/wkkixmebxlmh.html

主要问题是检测问题字符并将其替换为在编辑器中正确显示的“\x{2019}”。但我想不出一个正则表达式来实际捕捉野外的角色。

更新:

我仍然无法检测到我上传到上面 Filevo 的 XML 文件中的 ALT-0146 字符。我试过以 UTF-8 格式打开它,并搜索/\x{2019}/、/chr(0x2019)/和/'/,什么也没有。

最佳答案

发现 HTML 文档的编码困难。参见 http://blog.whatwg.org/the-road-to-html-5-character-encoding特别是它需要一个“7 步算法;第 4 步有 2 个子步骤,第一个有 7 个分支,其中一个有 8 个子步骤,其中一个实际上链接到一个单独的算法,该算法本身有 7 个步骤……就这样持续了一段时间。”

这是我用于解析 HTML 文件的有限需求。

my $CHARACTER_SET_CLASS = '\w:.()-';

# X(HT)?ML: http://www.w3.org/International/O-charset
/\<\?xml [^>]*(?<= )encoding=[\'\"]?([$CHARACTER_SET_CLASS]+)/ ||
# X?HTML: http://blog.whatwg.org/the-road-to-html-5-character-encoding
/\<meta [^>]*\bcharset=["']?([$CHARACTER_SET_CLASS]+)/i ||
# CSS: http://www.w3.org/International/questions/qa-css-charset
/\@charset "([^\"]*)"/ ||

关于html - 在 Perl 中读写未知编码的 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6157262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com