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码与单个字符之间的转换:
ord() :返回字符对应的ascii码或者unicode码
chr():返回ascii码或者unicode码对应的字符

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

三.unicode与字符串之间的编码转换:

1.python2与python3中字符串类型的区别:
在python3中字符串分为 str 和 bytes 两种类型 :

        Str To Bytes 使用 encode(), 编码
        Bytes To Str 使用 decode(), 解码

在python2中字符串分为 unicode 和 str 类型

      Str To Unicode 使用decode(), 解码
      Unicode To Str 使用encode(), 编码

2.字符串转unicode编码
python3:

>>> s="你好"
>>> s1=s.encode('unicode-escape')
>>> s1
b'\\u4f60\\u597d'           #字节串类型(bytes)的unicode编码串
>>> s1.decode()
'\\u4f60\\u597d'            #字符串类型(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'      # str类型编码串

3.unicode编码串转字符串
python2:

(1)
>>> s=u'\u4f60\u597d' #unicode类型编码串
>>> print s
你好
(2)
>>> s1='\\u4f60\\u597d' #str类型编码串
>>> s1.decode('unicode-escape')
u'\u4f60\u597d'
>>> print s1.decode('unicode-escape')
你好

python3

1>>> s
b'\\u4f60\\u597d'   #bytes类型编码串
>>> s.decode('unicode-escape')
'你好'2>>> s1
'\\u4f60\\u597d'    #str类型编码串
>>> s1.encode('utf-8').decode('unicode_escape')
'你好'

你可能感兴趣的:(python,python,unicode)