在 colab 中解码 gb-2312 文件

Decoding gb-2312 file in colab

我正在尝试在 Colab 中打开一个使用 gb-2312 编码的文件。这是我成功运行在我的IDE中读取和解码的代码:

file = open(r'file.txt')
opened = file.read()
decoded = opened.encode('latin1').decode('gb2312')
print(decoded)

当我在 colab 中 运行 这段代码时,出现以下错误:

'utf-8' codec can't decode byte 0xc6 in position 67: invalid continuation byte

但是如果不先使用 read() 或 list() 就无法解码,否则会出现以下错误:

'_io.TextIOWrapper' object has no attribute 'encode'

这似乎是一个陷阱 22。这是 Colab 的错误还是有更好的方法来解决这个问题?

打开文件时的默认设置是 rt(阅读,文本模式)并使用 locale.getpreferredencoding(False) 返回的 OS 特定的默认编码。使用 encoding 参数覆盖默认值(看起来是 utf-8):

with open('file.txt', encoding='gb2312') as file:
    data = file.read()