字符编码
字符编码理论
字符编码的理论很多,但是结论很少,代码使用也很短>>>>:JasonJi博客
计算机内部存储数据的是二进制数,只认识0和1,但我们却敲出各式各样的字符,是因为我们有字符编码本,是存储着一个数字跟字符的对应关系。
字符编码发展史
1.一家独大
计算机是由美国人发明的,为了能够让计算机上识别英文
需要发明一个数字跟英文字母的对应关系
ASCII码;记录了英文字母跟数字的对应关系
用8bit(1字节)来表示一个英文字符
2.群雄割据
中国人
GBK码:记录英文、中文与数字的对应关系
用至少16bit(2字节) 来表示一个中文字符
很多生僻字还需要使用更多的字节
英文还是用8bit(1字节)来表示
日本人
shift_JIS码:记录了英文、日文与数字的对应关系
韩国人
Euc_kr码:记录了英文、韩文与数字的对应关系
"""
每个国家的计算机使用的都是自己定制的编码本
不同国家的文本数据无法直接交互 会出现"乱码"
"""
3.天下一统
unicode 万国码
兼容所有国家语言字符
中文起步就是两个字节来表示字符
utf系列:utf8 utf16 ...
utf系列用于优化unicode存储问题
英文还是采用一个字节 中文三个字节
字符编码实操
1.转文档时,遇到乱码不要慌,切换编码慢慢试即可
2.编码与解码
编码:将人类的字符按照指定的编码编码成计算机能够读懂的数据
字符串.encode()
解码:将计算机能够读懂的数据按照指定的编码解码成人能够读懂
bytes 类型数据.decode()
3.python2与python3差异
python2默认的编码试ASCII
1.文件名
2.字符串前面加u
u'你好啊’
python 3 默认的编码是utf系列(unicode)
test= '工作就是要轻轻松松的工作'
print(test.encode('utf8'))
"""b'\xe5\xb7\xa5\xe4\xbd\x9c\xe5\xb0\xb1\xe6\x98\xaf\xe8
\xa6\x81\xe8\xbd\xbb\xe8\xbd\xbb\xe6\x9d\xbe\xe6\x9d\xbe\
xe7\x9a\x84\xe5\xb7\xa5\xe4\xbd\x9c'
"""
res = test.encode('gbk')
res1 = res.decode('gbk')
print(res1)
"""
b'\xe5\xb7\xa5\xe4\xbd\x9c\xe5\xb0\xb1\xe6\x98\xaf\xe8\
xa6\x81\xe8\xbd\xbb\xe8\xbd\xbb\xe6\x9d\xbe\xe6\x9d\xbe\
xe7\x9a\x84\xe5\xb7\xa5\xe4\xbd\x9c'
"""
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY