关于Python字符编码与二进制不得不说的一些事
什么是字符编码
字符编码是将字符映射到二进制数据的一种方法。计算机无法处理字符,因此通过字符编码将字符转换为计算机可以理解的二进制数据。
常见的字符编码
ASCII
ASCII码(American Standard Code for Information Interchange)是由美国国家标准组织(ANSI)制定的字符编码。ASCII码用一个字节(8bits)表示一个字符,可以表示英文字母、数字、标点符号、控制字符等128个字符。
UTF-8
UTF-8(Unicode Transformation Format,8-bit)是Unicode的一种实现方式。UTF-8可以通过使用1~4个字节来表示一个字符。它使用ASCII码表示的字符(1个字节)和使用多字节的其他字符。UTF-8是当前互联网上使用最广泛的字符编码。
GBK
GBK是一种汉字编码标准,是表现中文字符的编码方式之一。它采用双字节编码来表示中文字符,能够表示繁体中文、简体中文和日文中的汉字和假名等。GBK与GB2312标准兼容,但是GBK能够覆盖更多的字符。
Python中的字符编码
在 Python2 中,默认字符编码是 ASCII,因此如果要使用 UTF-8 编码时,需要在文件中添加 coding 声明:
# -*- coding: utf-8 -*-
在 Python3 中,默认字符编码是 UTF-8,因此不需要添加 coding 声明。
Python中常用的字符串和字节串:
- 字符串(str):由Unicode字符组成,用于表示字符序列。
- 字节串(bytes):由字节组成,用于表示二进制数据。
在Python3中,字符串和字节串已经分开了,使用字符串和字节串要进行转换,转换函数为 encode 和 decode。
二进制的表示方法
二进制是计算机中最基本的计数方式。二进制只有0和1两个数字,每一位数字称为一位(bit)。8位二进制被称为一个字节(byte)。
在 Python 中,可以使用前缀 0b 或者函数 bin() 将整数转化为二进制表示,也可以使用函数 bytes()
将一个字符串转换为字节串。
示例1,将10转换为二进制:
a = 10
print(bin(a)) # 0b1010
b = bytes(str(a), encoding='utf-8')
print(b) # b'10'
示例2,将一个字符串转换为字节串:
s = "Hello, world!"
b = bytes(s, encoding='utf-8')
print(b) # b'Hello, world!'
最后,需要注意的一点是,Python 3 中默认使用 UTF-8 编码,所以在处理非 UTF-8 编码的数据时需要注意转换。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Python字符编码与二进制不得不说的一些事 - Python技术站