【问题标题】:Python ics language encodingPython ics 语言编码
【发布时间】:2021-10-26 09:13:50
【问题描述】:

我有这个 .ics 文件,我想导入 python。

我正在使用 requests 和 ics 库来执行此操作。

当我尝试打印日历的内容(包括希伯来字母)时,我开始胡言乱语了。 但是,我尝试对另一个日历执行相同的程序,该日历也包含希伯来字母,效果非常好。

这是我的代码。

import requests as rq
from ics import Calendar

url = "https://example.com/cal/"

c = Calendar(rq.get(url).text)

for event in list(c.events):
    print(event)

我得到这个输出

BEGIN:VEVENT
DTSTAMP:20210322T123000Z
DESCRIPTION: ×××× ××××¢× ××××©× ×'\n×§×××¦× 11\nתר××× ×ספר 1\n×תר××/ת: ×ר×× ××\n14:30-16:30
DTEND:20210322T143000Z
LOCATION:××××× 805
DTSTART:20210322T123000Z
SUMMARY:תר××× 234114
TRANSP:OPAQUE
UID:202002.234114.LG11.1.×.14:30 
URL:
END:VEVENT

我该如何解决这个问题?

【问题讨论】:

    标签: python icalendar


    【解决方案1】:

    requests'.text 尝试猜测内容的编码(以前使用chardet,现在使用charset_normalizer)。有时可能会出错,导致乱码。

    根据快速谷歌,可能的希伯来语编码是ISO-8859-8。 (编辑:在 cmets 中发现,它实际上是纯 UTF-8。)

    试试

    resp = requests.get(url)
    resp.raise_for_status()
    text = resp.content.decode("ISO-8859-8")
    c = Calendar(text)
    

    要明确编码?

    【讨论】:

    • 那么文件不是 ISO-8859-8。你需要弄清楚它到底是什么。 (试试UTF-8,以防万一?)
    • 与 UTF-8 完美配合,非常感谢 :)
    猜你喜欢
    • 2012-06-27
    • 2014-08-16
    • 2011-01-17
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    相关资源
    最近更新 更多