python进制转换,unicode,ascii编码转换

一.各进制的字符串转为10进制~
int(‘字符串’,2[16|8]) #可以把进制形式的字符串按照2进制|16进制|8进制的方式转成10进制
例:

int('79',16)           
121

int('01010101010',2)
682

int('767',8)
503

二.各进制转为2进制,8进制,16进制。bin,oct,hex 。
返回的结果都是字符串类型
例:

16进制转8进制
a=0x16  #22
oct(a)   #'0o26'

转8进制
oct(0x16)
oct(10)
oct(0b10111)

转16进制:
hex(10)
hex(0o26)
hex(0b101110)

转2进制:
>>> bin(0x16)
'0b10110'
>>> bin(0o26)
'0b10110'
>>> bin(22)
'0b10110'

三.ascii码和unicode编码转化:
1.单个字符转ascii
ord() 返回字符对应的ascii码
chr()返回ascii码对应的字符

例:
>>> ord('你')
20320
>>> chr(20320)
'你'

2.字符串转unicode编码(建议用python3)

python3
>>> s="你好"
>>> s1=s.encode('unicode-escape')
>>> s1
b'\\u4f60\\u597d'           #字节串类型
>>> s1.decode()
'\\u4f60\\u597d'            #<class 'str'> 字符串类型的unicode编码串
需要注意的是:python3里没有unicode类型了,也就是没有形如:u‘\u4f60’的实例对象了。
python2:
(1)
>>> s="你好"
>>> s.decode('gbk')
u'\u4f60\u597d'     # unicode类型
(2)或
>>> unicode(s,"gbk")  #gbk可替换utf-8等
u'\u4f60\u597d'		# unicode类型
(3)或
>>> s=u'你好'
>>> s
u'\u4f60\u597d'     #unicode类型
>>> s1=s.encode('unicode-escape')
>>> s1
'\\u4f60\\u597d'      # 字符串类型

3.unicode编码转中文

python2:
(1)
>>> s=u'\u4f60\u597d'
>>> print s
你好
(2)
>>> s1='\\u4f60\\u597d'
>>> print s1.encode('unicode-escape')
\\u4f60\\u597d

python3
(1)
>>> s
b'\\u4f60\\u597d'   #字节串类型
>>> s.decode('unicode-escape')
'你好'
(2)
>>> s1
'\\u4f60\\u597d'    #字符串类型
>>> s1.encode('utf-8').decode('unicode_escape')
'你好'

版权声明:本文为qq_35407885原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。