在运行程序的时候,运行到一行总是报错
sign = hashlib.md5(sign.encode()).hexdigest()
File "/home/test/translate_baidu_api.py", line 38, in baidu_translate
sign = hashlib.md5(sign.encode()).hexdigest()
File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x93 in position 412: invalid start byte
查阅了许多资料发现原因是我的sign字符串的编码格式不是utf-8,而是ISO-8859-2编码格式。由于数据是从数据库中取出的,所以只能将取出的数据变为utf-8格式,使用如下代码:
sign = sign.decode("ISO-8859-2")
sign = sign.encode("utf-8")
就可以将字符串编码格式改变为utf-8,运行程序,done!