python学习[第七篇] 数据类型之 字符串二
python学习[第七篇] 数据类型之 字符串二
----对应版本 Python2
术语
ASCII 美国标准信息交换码
UCS 通用字符集
UCS2 UCS的双字节编码方式
UCS4 UCS的四字节编码方式
UTF UNICODE或者UCS的转换格式
UTF-8 8位的UTF转换格式
什么是unicode?
unicode之前用的是ascii 码,ascii是7位二进制数的方式存储在计算机内,范围是32~126.而unicode通过使用一个或多个字节来表示一个字符的方法突破了ascii的限制。可以表示超过90000个字符。
怎样使用unicode?
python中把硬编码的字符串叫做字面上的字符串,默认所有字面上的字符串都是ascii编码,可以通过在字符串面前加一个'u'的前缀声明unicode字符串。
Unicode的函数可以把任何python的数据类型转换成一个unicode字符串。
Codec是什麽?
codec是COder/DECoder的组合的首字母组合。定义了文本跟二进制值的转换方式。unicode支持多种不同的编码方式,比方说 codec支持的四种常见的编码方式: ascii,ISO-8859,utf-8 utf-16.
utf-8可以用1~4个字节来表示其他语言的字符,CJK/East这样的东亚文字都是用3个字节来表示,少用的,特殊的或者历史遗留的字符用4个字节表示。
编码解码
编码 str.encode('utf-8')
解码 str.decode('utf-8')
unicode的实际应用
- 程序中出现字符串时一定要嫁前缀 u
- 不要用str函数 ,用unicode()替代
- 不要用过时的string 模块,如果传给他的是非ascii码字符,会把一切搞砸
- 不到必要时不要在程序里面编解码unicode字符。只有在写入文件或者数据库或者网络时才调用encode()函数。
python中unicode的支持
1 内建unicode函数
unicode()函数接收一个string做参数返回一个unicode字符串。
2 内建的encode decode函数
encode decode接收字符串做参数返回该字符串对应的编码解码后的字符串。支持str 和unicode.
3异常
UnicodeError