我试着写了一些文字,并对其进行编码为UTF-8在可能情况下,使用下面的代码:
outf.write((lang_name + "," + (script_name or "") + "\n").encode("utf-8", errors='replace'))
我收到以下错误:
File "C:\Python27\lib\encodings\cp1252.py", line 15, in decode
return codecs.charmap_decode(input,errors,decoding_table)
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 6: character maps to <undefined>
我认为errors='replace'
我的编码调用的一部分会处理这个问题?
FWIW,我只是打开与文件
outf = open(outfile, 'w')
没有明确声明的编码。
print repr(outf)
生产:
<open file 'myfile.csv', mode 'w' at 0x000000000315E930>
我分离出来写语句转换成一个独立的级联,编码和文件写入:
outstr = lang_name + "," + (script_name or "") + "\n"
encoded_outstr = outstr.encode("utf-8", errors='replace')
outf.write(encoded_outstr)
它是抛出异常的串联。
字符串是,通过print repr(foo)
lang_name: 'G\xc4\x81ndh\xc4\x81r\xc4\xab'
script_name: u'Kharo\u1e63\u1e6dh\u012b'
进一步的侦查工作发现,我可以连接那些纯ASCII字符串中的任何一个没有任何困难 - 这是把他们两个到是摔东西相同的字符串。