Python ics语言编码



我有这个。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ק×××¦× 11nתר××× ×ספר 1n×תר××/ת: ×ר×× ××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)。有时它可能是错误的,导致乱码。

根据谷歌的快速搜索,希伯来语可能的编码是ISO-8859-8。(编辑:正如在评论中指出的,它实际上是普通的UTF-8。)

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

对编码是明确的吗?

最新更新