我有一个字符串:
u'\xd0\xb2\xd0\xb8\xd0\xb4\xd0\xb5\xd0\xbe \xd0\xbf\xd0\xb0\xd0\xbb\xd0\xb5\xd1\x86 \xd0\xb2\xd0\xb2\xd0\xb5\xd1\x80\xd1\x85'
它包含сyrillic文本。我如何将它在Python 2.7.x上转换为带有сyrillic符号的unicode字符串,例如
u'видео палец вверх'
答案 0 :(得分:3)
使用draw()
编码进行编码:
latin1
答案 1 :(得分:1)
原始字符串上的u
前缀似乎有误。看起来字符是utf-8编码的,所以这应该是一个简单的(字节)字符串:
# no u'' prefix:
s = '\xd0\xb2\xd0\xb8\xd0\xb4\xd0\xb5\xd0\xbe \xd0\xbf\xd0\xb0\xd0\xbb\xd0\xb5\xd1\x86 \xd0\xb2\xd0\xb2\xd0\xb5\xd1\x80\xd1\x85'
# string is utf-8, decode it to unicode
u = s.decode('utf-8')
# this only works when your terminal charset is properly set up
print u
>>>> видео палец вверх
如果从其他地方获得该字符串,则其字符串类型错误。在这种情况下,您可以按照Serge Ballesta和Kasramvd的建议,通过使用latin1
编码对其进行编码强制将其强制转换为字节字符串:
s = u'\xd0\xb2\xd0\xb8\xd0\xb4\xd0\xb5\xd0\xbe \xd0\xbf\xd0\xb0\xd0\xbb\xd0\xb5\xd1\x86 \xd0\xb2\xd0\xb2\xd0\xb5\xd1\x80\xd1\x85'
# force encode with latin 1 and then properly decode it using utf-8
u = s.encode('latin1').decode('utf-8')
print u
>>>> видео палец вверх