我有一个像u'\U00000958'这样的值从数据库返回,我想把这个字符串转换成utf8
。我试着这样做:
cp = u'\\U00000958'
value = cp.decode('unicode-escape').encode('utf-8')
print 'Value: " + value
我得到这个错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
如何正确转换此值?在
更多细节。我在使用ucs2的2.7.10版本中。在
对于unicode问题,通常有助于指定python2和python3,以及如何获得特定的表示。在
从第一句话就不清楚实际值是什么,而不是如何显示。不清楚}可以用来确定你拥有什么。在
value like u'\\U00000958'
是1个字符的unicode字符串、10个字符的unicode字符串、14个字符(ascii)字节字符串,还是其他字符。使用len
和{通过尝试解码}是字节,但是什么编码呢?错误消息指出它不是ascii字节。0xe0是utf-8编码的典型起始字节。下面的互动
cp
,你是在暗示你知道{对我来说,以\xe0开头的cp是3个utf-8编码字节,
u'\\U00000958'
是其unicode解码的可评估表示。在相关问题 更多 >
编程相关推荐