当前位置: 首页 > news >正文

字符集和字符编码

字符集和字符编码

字符集:character set,规定了字符和二进制数字之间的对应关系

字符编码:character encoding,规定了二进制数字在计算机上的存储方式,也就是如何将字符集中的数字转换为字节序列

常见的字符集

ASCII:美国信息交换标准码,American Standard Code for Interchange Information,采用一个字节存储数据,规定了128个字符和二进制码之间的对应关系,是现今计算机业界标准

ISO-8859-1:扩展了ASCII字符集,增加了西欧语言的字符,包含256个字符。

Unicode字符集:把世界上常用的语言字符都进行了统一的编码,一个数值就代表一个字符,而且世界范围内公认

常见的字符编码

UTF-8

UTF-8编码:是Unicode字符集的一种编码转换规范,也就是怎么存储Unicode代码点的方案之一,UTF-8是一种变长字节编码方式,加入了多余的标识位来区分一个Unicode代码点。

UTF-8的存储方式:对于某一个字符的UTF-8编码,如果只有一个字节则其最高位是0;如果是多字节,其第一个字节从最高位开始,连续的二进制位,值是1的个数决定了字节的个数,其余各字节均以10开头,UTF-8最多可以用到6各字节,

1字节:0xxxxxxx
2字节:110xxxxx 10xxxxxx
3字节:1110xxxx 10xxxxxx 10xxxxxx
4字节:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 
5字节:111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 
6字节:1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 

UTF-8中可以用来表示字符编码的实际位数最多有31位,除去控制位,上述x表示的数字和Unicode编码是一一对应的

使用Unicode字符编码来表示字符:

  • \ddd:1-3位八进制数所表示的字符;
  • \uxxxx: 4位十六进制数所表示的字符

UTF-8中提到的BOM是什么:Byte Order Mark,字节顺序标记,是一个特殊的字符序列,通常出现在文件的开头,帮助文本编辑器或程序正确识别文件的编码方式。对于UTF-8,BOM是一个可选的字节序列,不是必须的,某些编辑器可能不支持BOM

UTF-16

和UTF-8一样,是Unicode字符集的一种编码转换规范,它使用2个或4个字节来表示一个字符,更加适合内存计算,Java语言内部使用UTF-16表示字符串。

char类型是按照Unicode规范实现的一种数据类型,固定两字节,也就是16bit大小

GBK

GB 13000.1-1993的扩展,既是字符集,又是字符编码,作为字符集,它是一个简体中文字符集,作为字符编码,它是一种双字节字符编码,每个字符用两个字节表示

相关文章:

  • 网站建设归工商局管还是工信局管如何提高搜索引擎优化
  • 网站的字体做多大合适陕西网站建设制作
  • 征婚网站做原油开封网络推广公司
  • 企业网站cms 系统网络推广公司深圳
  • 自助建站免费建站人力资源培训与开发
  • 重庆南坪网站建设咨询400网站优化外包顾问
  • 创建dummy
  • 2025年第八届广西大学生程序设计大赛(正式赛)题解(更新中)
  • 第五十一节:增强现实基础-单应性矩阵计算
  • Java NPE为什么不会导致进程崩溃(CoreDump)
  • ModbusRTU转profibusDP网关与RAC400通讯报文解析
  • 动态规划---路径问题
  • 【分库分表】理论基础
  • 基于python 实现的对一系列给定点进行 Akima 插值
  • 确定性推理 归结
  • Python类与对象:面向对象编程的基础
  • Ollama学习1:安装、命令、API
  • LLM基础-什么是大模型推理(LLM Inferencing)
  • 鸿蒙开发:了解$$运算符
  • STL的map和set(关联式容器深度解析)
  • C语言指针进阶
  • Python类属性与实例属性的覆盖机制:从Vector2d案例看灵活设计
  • 力扣HOT100之回溯:78. 子集
  • 项目难点 与 缓存
  • CodeTop之LRU缓存
  • kaggle房价预测-0.12619-排名:757