可以阻止Genshi解析HTML实体吗?

DNS*_*DNS 3 html python entities genshi

我使用Genshi(简化)有以下Python代码:

with open(pathToHTMLFile, 'r') as f:
    template = MarkupTemplate(f.read())
finalPage = template.generate().render('html', doctype = 'html')
Run Code Online (Sandbox Code Playgroud)

源HTML文件中包含的实体,如©,™®.Genshi用它们的UTF-8字符替换它们,这会导致查看器出现问题(输出用作独立文件,而不是对Web请求的响应),最终会看到生成的HTML.有没有办法阻止Genshi解析这些实体?比较常见的那些&通过就好了.

bob*_*nce 9

实际上&没有通过,它被解析成一个&符号,然后序列化回去,&因为这是在HTML中表示文字符号的必要条件.©另一方面,它不是一个必要的逃避,所以它可以留下它的文字特征.

所以不,没有办法阻止实体引用被解析.但是您可以通过序列化到纯ASCII来确保在返回的路上重新转义非ASCII字符:

template.generate().render('html', doctype= 'html', encoding= 'us-ascii')
Run Code Online (Sandbox Code Playgroud)

您仍然不会©在输出中获得实体引用,但是您将获得©等效的字符引用,并且希望通过显示最终文件的任何内容来理解它.