问题一:
python转换unicode编码,如b'\xcf\xb5\xcd\xb3\r\n ’转换中文
同时解决UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 4: invalid continuation byte问题。
b = b'\xcf\xb5\xcd\xb3\xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc2\xb7\xbe\xb6\xa1\xa3\r\n'
#decode()默认值为'utf-8'
print(b.decode())
会出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 4: invalid continuation byte。
这个问题是由于utf-8字符集不涵盖这b中的内容,utf-8不理解你给我说的啥,gbk懂啊,找gbk。
【解决办法】
#将Unicode转化为gbk
print(b.decode('gbk'))
系统找不到指定的路径
嗯。。好的,我去处理系统找不到的路径了。。
问题二:
用DataFrame保存数据至csv文件,选择gbk编码方式保存,出现错误“UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\x...’ in position”
df = pd.DataFrame(result)
df.to_csv(FILE_OUTPUT, mode='a', encoding='gbk')
【解决办法】
1. 使用GBK的超集GB18030
df = pd.DataFrame(result)
df.to_csv(FILE_OUTPUT, mode='a', encoding='GB18030')
2. 添加ignore参数,忽略无法编码的字符
print(txt.encode(“GBK“, ‘ignore’))
ref:https://blog.csdn.net/xufankang/article/details/86687242
3. 使用codecs模块
import codecs
f = codecs.open('test.txt', 'w', 'utf-8') # test.txt 也可以换成 test.csv
ref:https://blog.csdn.net/MemoryD/article/details/83303091
4. 先用gbk编码,忽略掉非法字符,然后再译码
print(str.encode('GBK','ignore').decode('GBk'))
ref:https://zhidao.baidu.com/question/1302043991323187059.html
问题三:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
【解决办法】 通过选卡分割,增加参数sep='\t'
df.to_csv(file_name, sep='\t', encoding='utf-8')