文档章节

20.7/4/14

云浅雪
 云浅雪
发布于 2017/04/14 13:11
字数 446
阅读 4
收藏 0

Python中,字符串以Unicode编码,因此可以在Python中使用多语言。而且,Python提供了*ord()*函数获取字符的整数表示,*chr()*函数把编码转换为对应的字符。

>>>ord('A')
65
>>>ord('中')
20013
>>>chr(66)
'b'
>>>chr(25991)
'文'

另外,还可以在字符前加*\u表示后面是十六进制的Unicode码。 Python对bytes类型的数据用带b前缀的单引号或双引号表示,str通过encode()*方法可以编码为指定的bytes,如:

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('ascii')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

encode()语法:

str.encode(encoding='UTF-8',errors='strict')

encoding -- 要使用的编码,如"UTF-8"。 errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 >codecs.register_error() 注册的任何值。

如果超过范围,解释器会报错。在bytes中,无法显示为ASCII字符的字节,用*\x##*表示。

反过来,如果读取到的字节流是bytes,将bytes变为str,需要用decode()方法

>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'

decode()语法:

str.decode(encoding='UTF-8',errors='strict')

encoding -- 要使用的编码,如"UTF-8"。 errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 >codecs.register_error() 注册的任何值。

要计算str包含多少个字符,可以用len()函数:

>>>len('ABC')
3
>>>LEN('中文')
2

如果是bytes,len()函数就计算字节数:

>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8'))
6

© 著作权归作者所有

上一篇: 2017/4/16
下一篇: 2017/4/11
云浅雪
粉丝 0
博文 9
码字总数 2523
作品 0
程序员
私信 提问
Python 中两个字典(dict)合并

dict1={1:[1,11,111],2:[2,22,222]} dict2={3:[3,33,333],4:[4,44,444]} 合并两个字典得到类似 {1:[1,11,111],2:[2,22,222],3:[3,33,333],4:[4,44,444]} 方法1: dictMerged1=dict(dict1.ite......

mickelfeng
2016/11/22
21
0
20.5shell脚本中的逻辑判断20.6文件目录属性判断20.7-9if特殊用法 case判断

20.5shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 大部分时候都是用的这种格式 格式2:if 条件; then 语句; else 语句; fi 格式2:if 条件; then 语句; else 语句; fi 20.6 文件目...

cwliang
2018/06/29
0
0
2018-4-18 Linux学习笔记

20.5 shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 格式2:if 条件; then 语句; else 语句; fi 格式3:if …; then … ;elif …; then …; else …; fi 逻辑判断表达式: if [ $a ...

XiaoluHuang
2018/06/28
0
0
机器学习实战笔记1)K-近邻算法:实战篇

问题 为了提高我的B格,我打算买瓶红酒尝尝。但是我对红酒一窍不通,不知道该如何鉴别红酒质量的好坏。于是突发奇想,能否使用K-近邻算法来帮助我选择呢? 数据准备 我在网上下载了红酒的数据...

Warren_Liu
2017/02/18
0
0
68.if逻辑判断以及判断文件目录属性 if特殊用法 case判断

20.5 shell脚本中的逻辑判断 20.6 if判断文件目录属性 20.7 if判断特殊用法 20.8/20.9 case判断 20.5 shell脚本中的逻辑判断: 在shell脚本里,-gt为大于,-lt为小于,-eq为等于,-ne为不等于...

王鑫linux
2018/09/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql报错 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

CentOS 6.5 下安装配置 mysql 使用yum安装,具体过程参见最下边的参考文章。 安装之后启动失败: [root@localhost ~]# service mysqld startStarting mysqld: ...

BG2KNT
31分钟前
3
0
IOC的学习(1)

IOC IOC创建bean的4种方式: 无参构造器, 有参构造器,其中<constructor-arg>可以通过index="0"或者type="int"来指定构造方法参数。 静态工厂方法,factory-method。 普通工厂方法,需要指定......

太猪-YJ
45分钟前
2
0
tomcat 莫名奔溃问题

Apr 24, 2019 6:18:11 PM org.apache.coyote.AbstractProtocol pause INFO: Pausing ProtocolHandler ["http-nio-8080"] Apr 24, 2019 6:18:12 PM org.apache.coyote.AbstractProtocol pause......

mellen
今天
3
0
组件开发规范 class名身份识别

组件需要通过一个组件共有的class来标识这个组件,外部调用的时候,可以通过锁定这个class来方便地改变组件的css样式。 设置方式 .my-checkbox { width: 20px; height: 20px; font-...

Carbenson
今天
3
0
如何在工作中快速成长?致工程师的10个简单技巧

阿里妹导读:阿里有句非常经典的土话,“今天的最好表现,是明天的最低要求。”如何挖掘潜能、发现更好的自己?今天,阿里巴巴高级无线开发专家江建明将认知升级的方法总结出来,帮助你获得快...

阿里云云栖社区
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部