初学python,版本是2.7
>>> text1 = u'\u4e2d'
>>> print text1
中
在字符串的前面加个 u 就表示是Unicode编码,但是如果我接受到的就是'\u4e2d'如下:
>>> text2 = '\u4e2d'
我怎么能 text2的编码转出成Unicode?
初学python,版本是2.7
>>> text1 = u'\u4e2d'
>>> print text1
中
在字符串的前面加个 u 就表示是Unicode编码,但是如果我接受到的就是'\u4e2d'如下:
>>> text2 = '\u4e2d'
我怎么能 text2的编码转出成Unicode?
我很负责任的告诉你....It's impossible!
为什么呢...
这要从python2.7的编码规则说起来了..
python字符串默认是str的..可以理解为ascii的或者python3里面的bytes类型的
当使用unicode("....")
或者u"..."
的时候才是unicode的
如果你: a = "\u4e2d"
的话...他默认的是6个字符的ascii字符串...len(a) = 6
的.所以他是ascii码的英文字符
如果你采用unicode(a)
的方法转换成ascii的话..只是将6个字符转换成了unicode编码..而英文字符的ascii编码和utf-8的是一样的.等于没有转..
并且你会发现...a的'\'被转义了成'\\'了...
如果你a.decode('utf-8')的话.等于和unicode()做了一件事情
具体的请去谷歌一下有关python编码的知识吧...python的编码是蛮搞的..搞懂了请写个博客..我去学习下.我也没搞很明白~
print '\u4e2d'.decode('unicode_escape')