尝试写入excell工作表时出现unicodedecodeerror以下情况。
异常类型:UnicodeDecodeError 异常值:
'ascii'编解码器无法解码位置7的字节0xc3:序数不在范围内(128)无法编码/解码的字符串为:i>����R<< / p>
我的视线:
def file_write(input):
handle1=open('/tmp/filelog.txt','a')
handle1.write(str(input))
handle1.close()
workbook = xlsxwriter.Workbook('report.xlsx')
worksheet = workbook.add_worksheet()
teachertitle = "ÖĞR"
file_write(teachertitle)
worksheet.write("A4", teachertitle, titlescell)
workbook.close()
奇怪的是。 File_write函数运行良好,它将“ÖĞR”写入本地文本文件。但是,当我尝试将“ÖĞR”写到excell workseeht时,会引发错误。
我也尝试了worksheet.write(“ A4”,Teachertitle.encode('utf-8'),titlescell),但问题仍然存在。
在views.py的开头,我也有#--编码:utf-8--
答案 0 :(得分:0)
您的file_write
函数很可能是问题所在,您需要在其中设置文件的编码以能够处理utf-8
。在python3中,您可以使用:
def file_write(input):
handle1=open('/tmp/filelog.txt','a', encoding='utf-8')
handle1.write(str(input))
handle1.close()
答案 1 :(得分:0)
最后,
解决方案是:
worksheet.write(“ A4”,Teachertitle.decode('utf-8'),titlescell)
解码解决了。据我了解,excell工作簿需要在写入excell工作表之前对字符串进行解码。