如何修复使用不同编码的网页中的无效HTML字符?

And*_*ndy 8 html ansi utf-8 character-encoding

我有很多网站都在渲染无效字符.页面的元标记指定UTF-8编码.但是,许多页面包含UTF-8无法解释的字符,可能是因为文件是使用其他编码(例如ANSI)保存的.特别是我现在关注的那个是一个花哨的撇号(如" 鲍勃的 "......如果没有正确显示那就对不起).W3的验证器指示实体是" \ x92 ",但它不会验证文件,因为它不映射到unicode.当然,如果我在Notepad ++中打开文件并将编码更改为UTF-8,则该字符将被黑框中的92替换.

这是我的问题:解决这个问题的最简单方法是什么?我是否必须打开所有页面并用常规撇号替换该字符?或者是否可以添加(例如,IIS)可能会覆盖或修复编码问题的快速修复?或者我是否需要强力查找/替换?我在这些网站上有数百个页面,我不知道有多少页面需要更改,所以如果有人知道一种方法我可以绕过这个问题或快速修复它我会很感激.

ste*_*esu 2

您是否以直接 HTML 的形式提供页面,或者是否有其他脚本提供内容?如果您有一个提供内容的脚本,则该脚本可以仅查找 \x92 的任何实例并将其替换为撇号。在 PHP 中,这将是一个简单的 str_replace()

如果您直接提供 HTML,那么您必须实际修改文件本身。但是,这可以是自动化的(如果您有数百个文件,则可能应该是自动化的),具体取决于您可以使用哪些工具以及您所在的操作系统。既然您说您正在使用 Notepad++,我想可以安全地假设你使用的是 MS Windows(因此没有有趣的 Unix 命令来加快速度)

但是,可以创建一个可以执行此操作的 BATCH 脚本。命令提示符中内置了非常简单的 ASCII 文本编辑工具。如果这是不可能的,那么如果您的系统上有编译器并且对 C 有一定的了解,那么很有可能创建一个 C 或 C++ 程序来执行此操作。如果您有前者而不是后者,请询问,我会制作一些为您提供来源。