07 字符编码
Posted zdq1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了07 字符编码相关的知识,希望对你有一定的参考价值。
1.字符编码
字符编码针对的是文字无需考虑‘视屏、音频’等
2.编写文本的过程
输入的字符 >>>(字符编码表)>>> 二进制数字
2.1字符编码表:
就是字符与数字的对应关系
a 0
b 1
a 00
b 01
c 11
d 10
2.2ASCII码表
用八位二进制表示一个英文字符 所有的英文字符+符号最多也就在125位左右
0000 0000
1111 1111
2.3GBK
用2Bytes表示一个中文字符 还是用1Bytes表示一个英文字符
0000 0000 0000 0000
1111 1111 1111 1111 最多能表示65535个字符
2.4万国码unicode
统一用2Bytes表示所有的字符
a 0000 0000 0010 1010
产生的问题:
1.浪费存储空间
2.io次数增减,程序运行效率降低(致命)
额外:
内存中的编码和硬盘的编码是不一样的
1.存储数据的过程:
内存中的unicode(万国码)》》》编码(endode)》》》硬盘中的utf——8格式(该格式是二进制数)
2.读出数据的过程:
硬盘中的utf-8二进制数据》》》解码(decode)》》》内存中的unicode(万国码)
3.乱码:
当存在硬盘的编码,与运行环境的编码不一致则出现乱码。
保证不乱码的核心:
以什么编码,用对应的编码解码即可
4.python2和Python3中编码的区别:
4.1python2
将py文件按照文本文件读入解释器中默认使用ASCII码(因为在开发python2解释器的unicode还没有盛行)
4.1.2文件头
# coding:utf-8
4.2python3
将py文件按照文本文件读入解释器中默认使用utf-8
4.3
补充:
1.pycharm终端用的是utf-8格式
2.windows终端采用的是gbk
以上是关于07 字符编码的主要内容,如果未能解决你的问题,请参考以下文章