Pythonics语言编码

Python ics language encoding

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

我正在使用请求和 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

我该如何解决这个问题?

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

根据快速 google,希伯来语的可能编码是 ISO-8859-8。 (编辑:如评论中所示,它实际上是纯 UTF-8。)

尝试

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

明确编码?