Python 入门(二)Unicode字符串
Unicode字符串
字符串还有一个编码问题。
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节 (byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122。
如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。
类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。
因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:
print u'中文' 中文
注意: 不加 u ,中文就不能正常显示。
Unicode字符串除了多了一个 u
之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效:
转义:
u'中文\n日文\n韩文'
多行:
u'''第一行 第二行'''
raw+多行:
ur'''Python的Unicode字符串支持"中文", "日文", "韩文"等多种语言'''
如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释
# -*- coding: utf-8 -*-
目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。
任务
用多行Unicode字符串表示下面的唐诗并打印:
静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
# -*- coding: utf-8 -*-
print u'''静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。'''
相关文章
- 关于Excel,你一定用的到的36个Python函数
- Python编程:从入门到实践(选记)
- 【Python 17】B分R计算器1.0(数值类型)
- 【python cookbook】【字符串与文本】14.字符串连接及合并
- Python找工作并不容易,面试了很多企业,总结了些宝贵经验
- Python入门——针对零基础学习者的资料推荐
- 10个Python爬虫入门实例
- Python基础——PyCharm版本——第八章、文件I/O(核心3、csv和excel解析)
- python获取当前路径下所有文件
- 100天精通Python(基础篇)——第21天:模块和包
- 如何入门Python爬虫?
- Python 数据分析入门:搭建环境(基础必备)
- Python获取某平台主播照片, 实现颜值检测, 进行排名
- 机器学习案例(六):Python 大数据进行信用卡欺诈检测(完整源码和分析)
- 【阶段一】Python快速入门01篇:Python基础环境、Python基础概念、字符串常用操作
- python之配置文件读写
- Python游戏开发入门:pygame实例运动的小球-5
- python @abstractmethod
- Python 如何判断一个函数是generator函数?
- python里使用map()函数
- python web py入门(22)- javascript的加法
- 一个月学会Python,零基础入门数据分析
- 为什么说Python是我最喜欢的测试自动化工具?
- 如何开始写python爬虫?给入门python小白一条清晰的学习路线
- 分享给入门Python小白的学习心得
- p4.第一章 Python基础入门 -- 进制和码制 (四)