ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

字符编码

2022-08-12 19:01:15  阅读:149  来源: 互联网

标签:编码 1bytes 计算机 字符 utf8 英文


1.前提
字符编码的研究只针对文本文件
2.如何理解字符编码
计算机是基于电工作的 电信号只有高低电平两种状态 我人为的定义为0和1
也就意味着计算机的世界其实只认识二进制数字0和1
但是我们却可以使用计算机打出各种人类的字符
"""
人类字符 转换 二级制数
字符编码:记录了字符与数字的对应
"""
ps:课外扩展
比特位 bit 一个二进制位
8bit = 1bytes
1024bytes = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
3.字符编码发展史
一家独大
计算机是有美国人发明的 为了让计算机识别英文
ASCII码:记录了英文字符与数字的对应关系
1bytes表示英文(英文字母、英文符号)
ps:此时的计算机只能识别英文
群雄割据
中国人
为了让计算机识别中文
GBK码:记录了英文、中文与数字的对应关系
1bytes表示英文
2bytes表示中文(很多中文都是3以上)
日本人
为了让计算机识别日文
shift_JIS码:记录了英文、日文与数字的对应关系
韩国人
为了让计算机识别韩文
Euc_kr码:记录了英文、韩文与数字的对应关系
ps:各个国家的计算机使用的编码表不一样 彼此无法直接交互(数据乱码)
天下一统
unicode万国码
兼容所有国家的字符
所有的字符都是至少2bytes起步存储
utf家族(utf8)
为了优化unicode存储机制
1bytes存储英文
3bytes存储中文

字符编码实战

1.乱码问题如何解决
数据当初是以什么编码编的就以什么编码解
2.编码与解码的含义
'''只有字符串可以做编码处理 编码之后数据相当于是二进制 可以基于网络发送'''
编码
将人类的字符按照指定的编码编码成计算机能够读懂的语言

解码
将计算机能够读懂的语言按照指定的编码解码成人类的字符
res = '周末班 一天就很累'
ret1 = res.encode('utf8') # 编码
print(ret1) # b'\xe5\x91\xa8...'
ret2 = ret1.decode('utf8') # 解码
print(ret2) # 周末班 一天就很累
3.不同版本解释器字符编码有区别
python2默认编码是ASCII
3.1.文件头
# coding:utf8
3.2.定义字符串前面必须要加字母u
res = u'周末班 一天就很累'
python3默认编码是utf家族
不需要文件头和字母u
ps:有时候为了兼容 也可能在python3中使用文件头和字母u(以前是的)

标签:编码,1bytes,计算机,字符,utf8,英文
来源: https://www.cnblogs.com/A121/p/16581048.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有