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

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

字符集:多个字符的集合。例如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 个汉字和图形符号

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

字符集和字符编码为什么乱码是问号?相关推荐

  1. 字符集和字符编码的概念区分

    字符集和字符编码的关系,字符集是规范,字符编码是规范的具体实现:字符集规定了符号和二进制代码值的唯一对应关系,但是没有指定具体的存储方式: unicode.ASCII.GB2312.GBK都是字符集: ...

  2. 13、字符集和字符编码

    字符集:字符集是多个字符的集合,常见字符集有:ASCII字符集.GB2312字符集.GB18030字符集.Unicode字符集等. ASCII字符集:是英文大小写字符.阿拉伯数字和西文符号的一个集合. ...

  3. 字符、字符集和字符编码详解(一文扫清疑惑)

    前言 字符.字符集和字符编码时常看见,之前也看过一些博文,看得迷迷糊糊地,看过即忘,今天有幸碰到一篇能让我醍醐灌顶的文章,整理一下相关知识点与大家分享! 原博文地址:字符集编码详解(学习,看一篇就够了 ...

  4. 字符集和字符编码(Charset Encoding)

    字符集和字符编码 一文参透字符编码的难题! 引子 在 python 中,处理字符串是常见任务,因为字符串编码问题,经常出现字符串乱码. 在 matplotlib 绘图时,text对象,如 axes_t ...

  5. 谈谈字符集和字符编码

    http://tommwq.tech/blog/2020/11/20/232 1 字符集和字符编码 字符集(charset)和字符编码(character encoding)是两个含义相近的概念.在历 ...

  6. 关于字符集和字符编码自己汇总记录

    第零篇 第一篇 第二篇 第三篇 第四篇:关于"unicode字符是2个字节"这句话的讨论 关于Unicode的中文百科  https://zh.wikipedia.org/wiki ...

  7. 字符集和字符编码的类别与区分详解

    目录 1. 字符集和字符编码 编码和解码 字节和字符 字符集和字符编码 2. ASCII 3. GB2312.GBK.GB18030和Big5 GB2312 GBK GB18030 Big5 4. U ...

  8. C--中文汉字占用字节长度(字符集和字符编码)

    中文汉字占用字节长度 一.字符集和字符编码 1.概念 2.英文字母和中文汉字在不同字符集编码下的字节数 二.环境对应的字符编码 1.Ubuntu16.04虚拟机 2.Notepad++ 三.sizeo ...

  9. 字符集和字符编码以及相关

    目录 为什么写本文? 什么是编码? 什么是字符? 字符集和字符编码的概念 简述字符集和字符编码发展史 Unicode字符集以及相关字符编码 参考链接 为什么写本文? 其实在我心中是一直知道有字符编码这 ...

最新文章

  1. 70佳精美的PSD素材免费下载(上篇)
  2. ITK:创建一个向量
  3. java 实现 web 客户端_Java web客户端和服务器端交互的原理
  4. 解决 dubbo问题:Forbid consumer 192.xx.xx.1 access service com.xx.xx.xx.rpc.api.xx from registry 116.xx1
  5. 基础算法 —— 调度问题
  6. linux静态网络ip dns怎么设置,Linux下如何配置静态IP设置DNS和主机名?
  7. JSON与Java对象的互相转换
  8. linux 没有 分区表,在Windows下分区,安装linux,分区软件肿么没有linux swap 这个选项?...
  9. Android中Dialog的使用
  10. 用计算机算微积分,AP微积分AB BC 计算器使用要求
  11. WEB应用组合——LAMP软件源码编译安装
  12. R语言详解参数检验和非参数检验——样本T检验、方差分析、pearson相关性检验、单样本wilcoxon检验、Mann-Whitney检验、配对样本wilcoxon检验、列联表检验、卡方检验
  13. 成都理工大学计算机组成原理考试,计算机组成原理试题.doc
  14. Ubuntu 16 AX201网卡安装后无法使用WIFI解决办法
  15. B2B、B2C、C2C、O2O分别是什么
  16. 基带传输、频带传输与宽带传输
  17. C语言之程序环境和预处理
  18. python足球大数据分析_使用Python抓取欧洲足球联赛数据进行大数据分析
  19. 2020牛客暑期多校训练营(第八场)I-Interesting Computer Game(并查集 + 思维)
  20. SLAM中坐标转换解法

热门文章

  1. 博客排名,终于进入前100啦!
  2. .Net中的frame框架
  3. 几个好用又有趣的在线编程网站
  4. 大脸猫:网站优化之发现一直有人抄写自己的原创文章,该怎么办?
  5. Git学习笔记(4)----基本操作及命令(本地仓库篇)
  6. Android兼容性系统app开发的一些探究
  7. Grush如何使用IBM Cloud Architecture Center中的IoT架构构建智能牙刷
  8. Python: CIR过程蒙特卡洛模拟
  9. 腾讯云sms短信验证码
  10. BBC的英语发音技巧教学节目