【问题标题】:Python encoding text from RSS using feedparser使用 feedparser 对来自 RSS 的文本进行 Python 编码
【发布时间】:2014-07-24 12:19:11
【问题描述】:

我正在尝试使用 feedparser 模块解析来自 RSS 提要的数据。

import feedparser

def main():
    try:
        rss = feedparser.parse('http://s.stooq.pl/rss/n.rss')
        print(rss.entries[0].title)

    except Exception as e:
        print(str(e))
main()

这给了我以下输出:

'ascii' 编解码器无法对位置 55 中的字符 '\xf3' 进行编码:序数不在范围内 (128)

我尝试将编码更改为 UTF-8,但结果如下:

b'Zostaniemy obs\xc5\x82u\xc5\xbceni w ka\xc5\xbcdym urz\xc4\x99dzie skarbowym' 所以这似乎是字节文字。

我应该如何处理这个字符串才能正确显示它?

【问题讨论】:

    标签: python encoding rss feedparser


    【解决方案1】:

    假设属性title是一个字符串,你可以试试:

    print(rss.entries[0].title.encode('utf-8'))
    

    【讨论】:

    • 这正是我所做的,结果是:b'Zostaniemy obs\xc5\x82u\xc5\xbceni w ka\xc5\xbcdym urz\xc4\x99dzie skarbowym'
    • 更奇怪的是——当我在 Python2.7 中根据你的建议运行这段代码时——它可以工作。 Python3 仍然返回字节字符串。
    • 是的,我的解决方案是针对 python 2.7.x
    • 只是为了说清楚。 Python 3 中的解决方案是什么?
    猜你喜欢
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多