字符集和字符编码&为什么乱码是问号?

什么是字符集和字符编码?

字符:在计算机和电信技术中,一个字符是一个单位的字形、类字形单位或符号的基本信息。即一个字符可以是一个中文汉字、一个英文字母、一个阿拉伯数字、一个标点符号等。

字符集:多个字符的集合。例如GB2312是中国国家标准的简体中文字符集,GB2312收录简化汉字(6763个)及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。

字符编码:把字符集中的字符编码为(映射)指定集合中的某一对象(例如:比特模式、自然数序列、电脉冲),以便文本在计算机中存储和通过通信网络的传递。

字符集和字符编码的关系 字符集是书写系统字母与符号的集合,而字符编码则是将字符映射为一特定的字节或字节序列,是一种规则。通常特定的字符集采用特定的编码方式(即一种字符集对应一种字符编码(例如:ASCII、IOS-8859-1、GB2312、GBK都是即表示了字符集又表示了对应的字符编码,但Unicode不是,它采用现代的模型)),因此基本上可以将两者视为同义词。

为什么乱码是问号不是其他符号呢?

说道这里就跟编码的发展史是很有关系的了

最开始出现的是 ASCII码、是美国人发明的,他将因为字母和特殊符号全部编码进去、采用了一个字节256种情况去编码这些字符

后来欧洲人看美国人整了个编码 于是自己整了个ISO-8859-1,他是为了将欧洲所有国家的语言文字全部编码进去,采用了 2个字节 65536种情况去对ASCII进行拓展,拓展完成之后,发现在码表中出现了大量的空白。也就是说有码值但是没有对应的字符

后来中国人发明了GB2312,也采用了2个字节, 收录 6763 个汉字,

再后来GB2312 扩展成了GBK, 21886 个汉字和图形符号

但也出现了大量空白的情况、当我们在解码一个字符的时候,如果编码和解码不一致的话很有可能造成读取的码值在码表中没有对应的字符,所以就用?代替

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简单^不简单

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值