Welcome to kimi's blog

字符编码

字符编码

字符编码理论

	字符编码的理论很多,但是结论很少,代码使用也很短>>>>:JasonJi博客
计算机内部存储数据的是二进制数,只认识01,但我们却敲出各式各样的字符,是因为我们有字符编码本,是存储着一个数字跟字符的对应关系。
	字符编码发展史
	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.文件名
			#encode:utf8
		2.字符串前面加u
			u'你好啊’

	python 3 默认的编码是utf系列(unicode)


# -*- encoding:utf8 -*-
test= '工作就是要轻轻松松的工作'

# 编码
print(test.encode('utf8'))  # # bytes类型在python直接看成二进制即可
"""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'
"""


posted @   魔女宅急便  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
Title
点击右上角即可分享
微信分享提示

目录导航