你用的是哪个库 ,如果是pymssql 的话,我建议换个库我测试末尾带b字样的版本没有这个问题
有些库是有这样的问题,所有编码自己加上U,尝试更换库试一下
刚才百度了一下,看到一个解决办法不错,考虑转载到我的空间,我确实遇到了这样的问题
方法如下:
python 提供了一个特殊的编码( raw_unicode_escape )用来处理这种情况:
In [4]: u'\xe4\xbd\xa0\xe5\xa5\xbd'.encode('raw_unicode_escape')以前杂没发现这个方法呢...我遇到这个问题是找个关天,换了个库才搞定
我没说清楚,比如 ‘虚拟票务'对应的gbk应该是 '\xd0\xe9\xc4\xe2\xc6\xb1\xce\xf1',我这里却被识别成了u '\xd0\xe9\xc4\xe2\xc6\xb1\xce\xf1',对u '\xd0\xe9\xc4\xe2\xc6\xb1\xce\xf1'decode('gbk')出错
'内容内容'已经是gbk编码(u '\xd0\xe9\xc4\xe2\xc6\xb1\xce\xf1'),对这个字符串encode('gbk')时报错:
UnicodeEncodeError: 'gbk' codec can't encode character u'\xd0' in position 0: illegal multibyte sequence
编码是gbk的,却被误认为是unicode了?直接转换成str再处理:
''.join(chr(ord(x)) for x in u'\xd0\xe9\xc4\xe2\xc6\xb1\xce\xf1')