Python字符串与编码
一、前 言
众所周知,计算机只能处理数字,如果要处理文本就要把文本转换为数字,计算机在最早设计的时候是采用了8个bit作为一个byte,因为计算机是0和1的二进制,所以,最大11111111的计算机一个二进制代表的最大整数为255(1 * 2^7 + 1 * 2^6 + 1 * 2^5 + 1 * 2^4 + 1 * 2^3 + 1 * 2^2 + 1 * 2^1 + 1 * 2^0 ),如果想要表示更大的值比如两个字节(1 * 2^15 + 1 * 2 ^ 14 ~~~ = 65535);
由于计算机是美国人发明的,最早只有127个字节被编码到计算机里,这个编码我们称之为ASCII编码,包含大小写英文字母以及一些特殊字符。如A:65,z:122。
但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。于是,Unicode字符集应运而生;这里不做过多展开,如果想要了解其中转换详情,可以参考廖雪峰-字符串与编码
在这一章节中我们只需要记得Python字符串在内存中是以Unicode格式存储,当str需要转成bytes时需要指定转换编码格式,默认指定utf-8,其它的记着也没太多必要,脑子里知道有那些模糊东西知道在哪里查阅就好,查的多了自然就记住了,查的不多说明使用的也不多,没必要非要记住。
Python字符串与编码
https://mzpvj.com/2025/04/20/[Python]-字符串与编码/