讲java,就少不了谈C#。
C#的作者百科,地址是https://baike.baidu.com/item/%E5%AE%89%E5%BE%B7%E6%96%AF%C2%B7%E6%B5%B7%E5%B0%94%E6%96%AF%E4%BC%AF%E6%A0%BC/2152925?fr=aladdin
从大一、到大四,谁能解释一下中间百分号、每一对十六进制数的含义?
中间这一串,是“安德斯·海尔斯伯格”八个汉字、一个标点的UTF-8编码。在UTF-8编码下,汉字占3个字节,中间的点是特殊符号占2个字节,英文逗号句号各站一个字节,中文逗号句号各占三个字节。
占3个字节的,第一个十六进制数一定是E. 占2个字节的,第一个十六进制数是C或D.
notepad++下,看一下编码:
python程序:
# C:\Users\asus\Desktop\
'''
https://baike.baidu.com/item/
%E5%AE%89
%E5%BE%B7
%E6%96%AF
%C2%B7
%E6%B5%B7
%E5%B0%94
%E6%96%AF
%E4%BC%AF
%E6%A0%BC/2152925?fr=aladdin
UTF 3字节格式,以E开头
1110 XXXX
10XX XXXX
10XX XXXX
E 1110
UTF 2字节格式 以1100(C)开头,以1101(D)开头
110X XXXX
10XX XXXX
'''
f = open('C:\\Users\\asus\\Desktop\\data_str.txt',mode='rb')
print(f.read())
f.close()
输出结果:
>>>
======================== RESTART: D:/19python/py0731.py ========================
b'\xe5\xae\x89\xe5\xbe\xb7\xe6\x96\xaf\xc2\xb7\xe6\xb5\xb7\xe5\xb0\x94\xe6\x96\xaf\xe4\xbc\xaf\xe6\xa0\xbc\r\n\xc2\xb7\r\n\xc2\xb7\r\n\xc2\xb7\r\n,.\r\n\xef\xbc\x8c\r\n\xe3\x80\x82\r\n\xc2\xb7'
>>>
汉字的编码问题,在大二学jsp的时候会涉及到。学过理论课、实验课,学生是否知道以上知识点?大四是否知道?
学生之间不能解答,年复一年,学生遇到乱码,可能是老师解决、或者自己摸索,学习效率很低。解决了少量问题,一个学期过去了。