python(55)-编码-解码-unicode到底是什么?+repr+

本篇描述一些概念。
1.写代码-运行代码
2.硬盘存储-内存-显示
3.为什么用python2无法打印相应的字符
4.什么叫bytes?
5.Unicode到底是什么?(码位+解释+编码)
6.编码与解码
7.python2 python3的区别

 


1.写代码-运行代码


2.硬盘存储-内存-显示
 

Python2python3
硬盘UTF-8UTF-8
内存ASCIIutf-8编码声明 (运行代码:在头处 #coding:utf-8 )
显示


3.为什么用python2无法打印相应的字符

   python2中gb2312 和ASCII是无法打印中文的。
4.什么叫bytes?
   
加载进内存叫bytes
    数据编码:内存中存放的形式 用repr(a)
    内存中存的是str  ,内存中存的是ascii
   

   


5.Unicode到底是什么?(码位+解释+编码)
   

a=u'hello'
告诉python的解释器,
当运行到这段代码的时候会采用unicode的形式,把字符内容加载到内存中 
unicode形式不是编码


unicode的码位

5.1unicode有两种字符集
    
 
   是否声明编码,内存中是不同的。

左边显示的是码位,右边是编码

5.2编码与解码
字符被加载进内存有两种形式:bytes, unicode
编码:unicode->bytes
解码:ASCII GB2312 UTF-8 ->Unicode
    

 


6.编码与解码的示例
 

repr()                   #查看内存中的编码
#英文是没有问题的
a='hello'                #存储内存中是被编码过的  
print(a.decode('ascii'))  #只能是解码  类型是unicode
print(a.decode('utf-8'))
print(a.decode('gb2312'))
print(repr(a.decode('ascii'))  u'hello'

#中文
#coding: utf-8
a='你好'
print(a.decode(('ascii'))  #打印不出
print(a.decode(('utf-8'))
print(a.decode(('gb2312'))  #打印不出






7.python2 python3的区别
 

 python2:

python3

 

Python3Python2
硬盘UTF-8UTF-8
内存unicode码位bytes(a=b'\xe4\xbd\xa0\xe5\xa5\xbd' b表示Bytes )
print编码(unicode+原封不动)

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值