在 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()
我正在尝试在 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()