关于unicode的学习
来源:互联网 发布:wear it on 编辑:程序博客网 时间:2024/06/05 02:11
通过下面一些代码,自己总结是,
python2.7默认ascii,可以通过在开头加入#coding:utf-8来改变编码。
还有一点,不要看到输出结果不是中文就以为编码变了,它只是计算机和人所识别的不同,你print 它,它就显示中文了
unicode是一个通用编码,用来做中转站。
把不同文本,终端显示的变成unicode叫解码,用decode(“你要解码的字符串的编码类型”);
把unicode编程各种编码,用以文本,终端输出叫编码,用encode(“想把unicode编成的类型”);
还有一种情况,例如有这么条语句,
b= ‘\u4f60\u597d’
其实我想给的字符是”你好“,前面没加u,就是说没表明他的unicode身份,它就是一个默认编码的字符串,猜猜 b;print b分别输出什么,
>>> b'\\u4f60\\u597d'>>> print b\u4f60\u597d
那他喵的咋弄成汉字啊?答案就是:
>>> print b.decode("unicode-escape")
下面是一些尝试,我试过后,就不想看了,太乱了,还是整理下吧,为什么我记性不好记性不好,只能乖乖作笔记
首先用两种方式定义两个字符串a,b;a是字符串,b是unicode,见下
#王祖蓝的画面感>>> a = "我好爱你的,真真的"#把b定义成unicode类型>>> b = u"我好爱你的,真真的">>> print "a 的类型是{};b的类型是{}".format(type(a),type(b))a 的类型是<type 'str'>;b的类型是<type 'unicode'>
再看看输出a
,b
和输出print a
,print b
的结果
>>> bu'\u6211\u597d\u7231\u4f60\u7684\uff0c\u771f\u771f\u7684'#这个时候a的编码是utf-8,没变>>> a'\xce\xd2\xba\xc3\xb0\xae\xc4\xe3\xb5\xc4\xa3\xac\xd5\xe6\xd5\xe6\xb5\xc4' >>> print a我好爱你的,真真的>>> print b我好爱你的,真真的
b是unicode,a是ascII(应该是吧),print的结果都是中文
用上decode(“unicode-escape”)的话呢,我就不懂下面的了,跳过去
>>> a.decode('unicode-escape')u'\xce\xd2\xba\xc3\xb0\xae\xc4\xe3\xb5\xc4\xa3\xac\xd5\xe6\xd5\xe6\xb5\xc4'>>> print a.decode('unicode-escape')ÎҺð®ÄãµÄ£¬ÕæÕæµÄ>>> print b.decode('unicode-escape')UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-8: ordinal not in range(128)
但是我能理解下面的,b是unicode,当然可以encode成你想要的编码了,这个简单
>>> b.encode('gb2312')'\xce\xd2\xba\xc3\xb0\xae\xc4\xe3\xb5\xc4\xa3\xac\xd5\xe6\xd5\xe6\xb5\xc4'>>> b.encode('utf-8')'\xe6\x88\x91\xe5\xa5\xbd\xe7\x88\xb1\xe4\xbd\xa0\xe7\x9a\x84\xef\xbc\x8c\xe7\x9c\x9f\xe7\x9c\x9f\xe7\x9a\x84'>>> print b.encode('gb2312')我好爱你的,真真的
再看看把a编码,下面两条报了同样的错,是不是说encode的时候先解码呢?结果解码的时候范围不对,ascii只有128字符,中文就多了去了,至于最后一条,unicode能解码成unicode吗,吃饱了撑的啊
>>> print a.encode('utf-8')UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 0: ordinal not in range(128)>>> print a.decode('ascii')UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 0: ordinal not in range(128)>>> print a.decode('unicode')LookupError: unknown encoding: unicode
- 关于unicode的学习
- 关于Unicode的参考资料
- 关于unicode 的问题!
- 学习笔记-关于字符集Unicode
- 关于Unicode的问题(转)
- 关于Unicode的小知识
- 关于WinCE的unicode问题
- 关于python unicode的实验
- 关于WinCE的unicode问题
- 关于UNICODE/ANSI的问题
- 关于Unicode数据类型的是是非非
- 关于pdf-----unicode的问题
- 关于Unicode编码的闲谈
- 关于Unicode编码的闲谈
- 关于Unicode编码的说明
- 关于unicode
- 关于UNICODE
- 关于unicode
- 16 个 Linux 服务器监控命令
- 算法初级_3 :函数与递归
- memcached实战系列(六)理解Memcached的数据存储方式
- 如何将MyEclipse10由D盘移动到C盘
- 信号signal
- 关于unicode的学习
- adb 命令
- 2013年山东省第四届ACM大学生程序设计竞赛:Rescue The Princess
- 日期类
- 结构-行为-样式-Angularjs-ngSanitize
- Mac上的抓包工具Charles
- 数据的输入与输出以及程序流控制语句
- WordPress切换中文
- Cocos2d-x 3.9教程:8. Cocos2d-x中的4种布局