You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的requests、ics库导入含希伯来文的ics文件出现乱码如何解决

ics文件希伯来语内容乱码修复方案

问题原因

requests库默认会根据HTTP响应头的Content-Type字段自动猜测文本编码,如果目标日历服务未返回正确的charset参数,requests会默认使用ISO-8859-1编码解析内容。而ICS格式规范默认采用UTF-8编码存储多语言内容,希伯来语属于非拉丁字符集,用错误编码解析后就会出现乱码。另一个同语言日历显示正常,是因为对应服务正确返回了UTF-8编码标识。

修复方案

调整请求后的解码逻辑,强制使用UTF-8解析响应内容即可,以下两种写法均可:

写法1:显式指定requests响应编码

import requests as rq
from ics import Calendar

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

resp = rq.get(url)
resp.encoding = 'utf-8'
c = Calendar(resp.text)

for event in c.events:
    print(event)

写法2:直接用字节流手动解码(更稳妥)

直接读取响应的原始字节流,手动用UTF-8解码,不受响应头错误编码标识的影响:

import requests as rq
from ics import Calendar

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

c = Calendar(rq.get(url).content.decode('utf-8'))

for event in c.events:
    print(event)

本地ics文件处理注意点

如果是读取本地存储的ics文件,打开时也要指定UTF-8编码:

with open('calendar.ics', 'r', encoding='utf-8') as f:
    c = Calendar(f.read())

内容的提问来源于stack exchange,提问作者Aa me

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:15:03