UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5
本帖最后由 圆嘟嘟 于 2021-9-17 14:57 编辑def read_memory(self, memory_dir):
#from src.admin import admin
#from conf import setting
f_memory = open(memory_dir , 'rb')
memory_feats = pickle.load(f_memory)# ,encoding='latin1' , encoding='bytes'
f_memory.close()
return memory_feats
出现错误:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
百度的解决方案:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
或者
import importlib
importlib.reload(sys)
或者
加encoding='latin1' , encoding='bytes'
都没有解决 看看原文件 是啥编码 很奇怪,pickle存储的文件是二进制的,应该不存在编码问题。看看memory_dir文件是否用pickle.dump写入的 wp231957 发表于 2021-9-17 15:43
看看原文件 是啥编码
原文件是ANSI 冬雪雪冬 发表于 2021-9-17 15:49
很奇怪,pickle存储的文件是二进制的,应该不存在编码问题。看看memory_dir文件是否用pickle.dump写入的
不知道怎么看 他怎么写入的。。就是读取了这个文件
memory_dir = '../memory/memoryft_9487.pkl'
vocab_trans_dir = '../memory/transvob.pkl'
f_memory = open(memory_dir, 'rb')
memory_feats = pickle.load(f_memory)
f_memory.close()
页:
[1]