【发布时间】:2020-12-24 23:42:21
【问题描述】:
我有一个包含字典列表的 .txt,其中有一些文件名,其中一些包含 ä ö ü。我试图用这段代码加载它:
with open('res/mp3s_stats.txt', 'r', encoding="utf-8") as f:
data = json.load(f)
但我收到此错误:
File "C:\Users\laure\AppData\Roaming\Python\Python38\site-packages\discord\ext\commands\bot.py", line 903, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\laure\AppData\Roaming\Python\Python38\site-packages\discord\ext\commands\core.py", line 855, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "C:\Users\laure\AppData\Roaming\Python\Python38\site-packages\discord\ext\commands\core.py", line 94, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 6184: invalid continuation byte
我能做些什么来解决这个问题?每次写入或读取此文件时,我已经使用 encoding="utf-8" :/
【问题讨论】:
-
打开文件时不指定编码,所以Python使用默认;显然,您的机器与 heroku 的默认设置不同。我倾向于指定 'utf-8' 作为编码(因为它可以编码任何 unicode 字符)并确保 json 文件保存为 UTF-8。