python unicode-Python Unicode编码之基础知识

标签:

一、什么是Unicode

在Unicode之前,人们使用ASCII码,即每个英文字符都是以7位二进制数的方式存储在计算机内,其范围是32-126,所以ASCII码字符只能表示95个可打印字符;虽然随后将位数扩展值了8位,但依旧最多只能表示233个字符,对于成千上万的非欧洲语系的语言来说有极大的限制。

Unicode通过使用一个或多个字节来表示一个字符的方法,突破了ASCII的限制,可以表示超过90000个字符。

二、怎么使用Unicode

从1.6版本起引进了Unicode字符串支持,用来转换多种双字节字符的格式、编码以及操作管理。为了让Unicode和ASCII码值的字符串看起来尽可能的相像,Python的字符串从原来的简单数据类型改为真正的对象,即ASCII字符串成了StringType型,而Unicode字符串成了UnicodeType型。

内建的str()函数和chr()函数并没有升级成可以处理Unicode。它们只能处理常规的ASCII编码字符串。如果一个Unicode字符串被作为参数传递给了str()函数,它会先被转换成ASCII字符串,然后再交个str()函数;如果Unicode字符串中包含任何不被ASCII字符串支持的字符,会导致str()函数报异常。

Python默认所有字面上的字符串都用ASCII编码,可以通过在字符串前面加一个"u"前缀的方式声明Unicode字符串;也可以使用内建的unicode()和unichar()函数把任何Python的数据类型转换成Unicode字符串,如果是对象,并且该对象定义了"__unicode__()"方法,还可以把该对象转换成相应的Unicode字符串。

三、Unicode在实际应用中的注意事项

1.程序中出现字符串时一定要加个前缀"u";

2.用unicode()函数代替str()函数;

3.尽量不要使用过时的string模块;

4.不到必须时不要在你的程序里编解码unicode字符,只有在你写入文件或者数据库或者网络时,才调用encode()函数;相应的在读取数据的时候才调用decode()函数;

5.Python 标准库里面的绝大多数模块都是兼容Unicode的,除了pickle模块,该模块只支持ASCII字符串,因此在使用时要小心;

6.如果你的程序里使用第三方模块,要确保各模块均能统一使用Unicode;

7.在每个应用开发前,先要考虑使用的语言,然后明确统一的编码方式;

标签:

原文地址:http://www.cnblogs.com/AngryZe/p/5394785.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值