python学习---字符编码

字符编码

python解释器在加载.py文件中的代码时,会对内容进行编码(默认是ascII)

二进制

2561286432168421
111111111

二进制与字符串进行转换就要用到字符编码

ASCII(Americal Standard Code for Information Interchange)美国标准信息交换代码 ,是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多能用8位来表示一个字节,即:2**8=256-1,所以,Ascll码最多只能表示255个符号

1980年GB2312一共收录了7445个字符,包括6763个汉子和682个其他符号

1995年GBK1.0收录了21886个符号,它分为汉字区和图像符号区,汉字包括21003个字符。

2000年GB18030取代了GBK1.0,并收录了27484个汉子,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不做要求。所以手机、MP3一般支持GB2312

通常我们还是用GBK指代中文windows内码

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽然有的字符和符号最少由16位来表示(2个字节)即2**16=65536

注意:此处说的最少2个字节,可能更多

UTF-8, 是对Unicode编码的压缩和优化,它不再使用最少使用2个字节,而是将所有的字符和符号进行分类

ASCII码中的内容用1个字节保存,欧洲的字符用2个字节保存,东亚的字符用3个字节保存

所以,python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascii)如果如下代码的话

报错:ascii码无法表示中文

#!/usr/bin/env python
print('你好,世界')

改正,应该显示告诉python解释器,用什么编码来执行源代码,如

#!/usr/bin/env python
# -*-  coding: utf-8 -*-
print('你好,世界')

下面的图片就解释了编码的发展史,如图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注意:在python2中不支持中文输入,在python3中支持中文

比如,下图就是在python2中执行的结果,报错了

 

 

 

 

 

 

 

之后,在文件顶部指定编码格式就可以了 # -*- coding:utf-8 -*-,如图

转载于:https://www.cnblogs.com/ommph/p/11363969.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值