非英语字符正在转换为十进制

时间:2011-09-15 11:06:32

标签: python xml utf-8 decimal non-english

当我查看RSS源时,在浏览器中我可以看到如下字体:

装,配上超短迷你裙,太过暴露,也很不得体。大专​​学生的随性打扮,到底是邋遢,还是新时尚呢?这一期的”青春开讲“,OMY记者来到武吉班让政府中学的学生,一起讨论这个话题。一名学生说,穿着打扮得体,是对别人,对自己的尊重。另一名学...

但是相同的源代码视图转换为十进制,如下所示:

#30701&#35044&#12289&#36855&#20320&#35033&#12289&#21514&#24102&#35013&#12289&#20154&#23383&#25302&#38795......&#22823&#19

987&#23398&#29983&#30340&#31359&#30528&#25171&#25198&#21450&#28526&#27969&#21697&#21619&#65292&#19968&#30452&#37117&#26159&#26159&#22823&#23478&#35752&#35770&#30340&#2

8909&#38376&#35805&#39064&#12290&

这是由于内容的本地化还是文件以不同的编码保存?我可以看到使用UTF-8保存文件。

修改 我试图使用Python解析RSS提要。但解析后,我只得到小数值,而不是实际的字符。

4 个答案:

答案 0 :(得分:2)

源视图不是将其转换为十进制 - 而是浏览器正在处理实体并将它们转换为相关的非ASCII字符。在转换没有终止';'的实体方面,它可能有点慷慨。

服务器几乎可以肯定地提供您在源视图中看到的内容。

答案 1 :(得分:1)

由于某种原因,创建Feed的工具决定将所有字符转换为Unicode代码点字符串表示形式。确实很奇怪,但只有该工具的作者可以回答。

答案 2 :(得分:1)

它们是不是只是由页面作者存储为HTML实体?

http://tlt.its.psu.edu/suggestions/international/bylanguage/thaichart.html

答案 3 :(得分:0)

这是浏览器处理此问题的方式。写一个简单的html页面,把这个'十进制'放在那里,检查你得到了什么。

是的,您可以在HTML中使用UTF-8字符,但必须设置页面编码。以十进制方式编码UTF-8字符(例如在您的示例中)更安全,因此许多页面更喜欢这样做。它在HTML标准中指定,因此如果您希望手动解析HTML,则必须能够处理它。