Python普通字符串和Unicode字符串的区别?
还是有些疑惑Python普通字符串和Unicode字符串的区别?print如果不加u的话,默认是ASCII?如果是的话,应该打印不出中文啊?可是不加u也可以打出文本啊?我想法哪里出问题了?
还是有些疑惑Python普通字符串和Unicode字符串的区别?print如果不加u的话,默认是ASCII?如果是的话,应该打印不出中文啊?可是不加u也可以打出文本啊?我想法哪里出问题了?
2017-05-08
在python2中
1. 当你定义一个中文
a="中文"
你会发现a的类型其实是一个str( 可以通过 type(a)查看,<type 'str'> )
因为可以得出结论, a是一个str类型,而str是已经经过编码的,编码后的值是'\xe4\xb8\xad\xe6\x96\x87' (len(a)的长度为6)
2. 当你加上u
a=u''中文"
你会发现a的类型是一个unicode()(可以通过type(a)查看,<type 'unicode'>)
因此可以得出结论,a是一个unicode类型,而unicode存储的是编码前的字符,编码前的值是
"u'\u4e2d\u6587'",(len(a)的长度为2)
3. str类型转换为unicode
a.decode('utf-8')
希望对你有帮助
举报