首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

为什么字符u'\x81'转不了GBK解决方法

2012-04-06 
为什么字符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 code
print repr(objects[objname]) 

热点排行