为什么字符u'\x81'转不了GBK解决方法
为什么字符u\x81转不了GBKPython code a u\x81 a.encode(gbk)Traceback (most recent call
为什么字符u'\x81'转不了GBK
Python code>>> a = u'\x81'>>> a.encode('gbk')Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> a.encode('gbk')UnicodeEncodeError: 'gbk' codec can't encode character u'\x81' in position 0: illegal multibyte sequence
在导出数据库触发器时发现中途报错,发现是有触发器包含这样的字符u'\x81',在转gbk时报错,这样怎么解决呢?
[解决办法]首先你要知道u'\x81'这个unicode码表示的是什么,当然unicode不可能是8位,u'\x81'实际上是u'\x00\x81',查询维基百科(http://en.wikibooks.org/wiki/Unicode/Character_reference/0000-0FFF)你可以知道u'\x00\x81'对应的是控制字符HOP,这个控制字符其实在unicode中并没有赋予具体的意义,只是预留的,用英语来说就是'A reserved control code',这种预留的控制字符在gbk编码中根本就不可能存在,所以转码错误是显然的。
[解决办法]先搞清楚原始数据是什么:
Python codeprint repr(objects[objname])