PHP中的PHP html_entity_decode()

时间:2014-04-09 13:56:57

标签: php python decode html-entities utf8-decode

我们说我有一个文件 a.txt ,其中包含HTML编码的HTML,如下所示:

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
        <head>
            <title>HTML preview</title>
            <link rel="StyleSheet" href="style.css" type="text/css" media="screen">
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>&lt;!doctype html&gt;&lt;html itemscope=&quot;&quot;
        ...
        &lt;/script&gt;&lt;/body&gt;&lt;/html&gt;</body>
        </html>

在PHP中,我可以这样做:

<?php
$content = file_get_contents('a.txt');
$start = strpos ($content, '<body>') + 6;
$end = strpos ($content, '</body>');
$html = html_entity_decode(substr($content, $start, $end-$start));
file_put_contents('b.html');

它完美无缺。文件 b.html 会成为正确的HTML。

我的问题是:假设文件和编码内容是UTF-8,我怎么能用Python做呢?

编辑:我使用HTMLParser和BeautifulStoneSoup进行了一些实验,但是它们破坏了UTF-8编码。我尝试使用UnicodeDammit,但是将字符串返回到控制台或文件会带来一个异常,即字符超出范围。

编辑2:请回答一个代码示例,它们以类似的方式工作。

解决方案1 ​​

Python's version of html_entity_decode()

0 个答案:

没有答案