SBCS、DBCS、ASCII、MBCS(ANSI)、Unicode

2023-09-20 10:22:49

1.三种编码方式和三种字符类型。

  • 第一种编码方式是单字节字符集,称之为 SBCS,它的所有字符可用一个字节存储。ASCII 码就是SBCS。SBCS字符串由一个零字节结尾。
  • 第二种编码方式是多字节字符集,称之为 MBCS,它包含的字符中有单字节长的字符,也有多字节长的字符。Windows 用到的 MBCS 只有二种字符类型,单字节字符和双字节字符。因此Windows 中用得最多的字符是双字节字符集,即 DBCS,通常用它来代替 MBCS。
  • 第三种编码方式是Unicode。 Unicode 只是一个字符集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储,通常说 Unicode 字符,指的是 UTF16,既所有字符都以双字节存储,故有时也将 Unicode 称为宽字符集(Wide characters)。

2.ASCII、MBCS、ANSI、Unicode编码的关系和区别

  • ASCII 编码 0~127 使用一个字节即可表示;
  • 为了扩充 ASCII 编码,以用于显示本国的语言,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种文字延伸编码方式,称为 ANSI 编码,又称为MBCS(Muilti-Bytes Charecter Set,多字节字符集),它是编码的一种类型,而不是某个特定编码的名称。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码,所以在中文 Windows 系统下要转码成 GB2312,只需要把文本保存为 ANSI 编码即可。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。一个很大的缺点是,同一个编码值,在不同的编码体系里代表着不同的字。这样就容易造成混乱。导致了 Unicode 码的诞生。
  • GBK 字符集是 GB2312 的扩展,它是一种双字节编码,可以表示21003个汉字和符号。

  • 为防止编码冲突,将所有语言都统一成Unicode编码,该编码内存存储方式有UTF-8,UTF-16和 UTF-32,我们习惯说的 Unicode 实际是说的 UTF-16 这种内存存储方式,这个很多博客都没有说清楚,很多初学者很容易混淆编码和内存表示方式;

3.Unicode 和 MBCS 字符串之间的转换

  • Windows 编程中常常看到函数 WideCharToMultiByte,其第一个参数 CodePage 为CP_ACP时, 指的 UTF-16 表示的 Unicode 字符串 (WCHAR) 转化为 MBCS(CHAR), CodePage 为CP_UTF8 时, 指的 UTF-16 表示的Unicode 字符串 (WCHAR) 转化为 UTF-8 表示的Unicode 字符串(CHAR),
更多推荐

Docker镜像:构建、推送和创建多个容器实例

文章目录步骤1:构建自定义Docker镜像步骤2:推送和拉取Docker镜像步骤3:创建多个容器实例结论🎈个人主页:程序员小侯🎐CSDN新晋作者🎉欢迎👍点赞✍评论⭐收藏✨收录专栏:云计算✨文章内容:Docker镜像🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗Docke

PX4自动控制中常用的几个话题

订阅话题1、/mavros/state订阅/发布:订阅功能:订阅mavros的一些状态数据,如连接状态、是否解锁、当前无人机模式数据类型:mavros_msgs/StatestringMODE_PX4_MANUAL=MANUALstringMODE_PX4_ACRO=ACROstringMODE_PX4_ALTITUD

处理SQLSyntaxErrorException异常:数据库表 ‘books‘ 不存在;

目录背景介绍我的问题中的解决方法通用方法背景介绍今天遇见了这个问题,解决后发出来分享一下Java应用程序中的SQLSyntaxErrorException:表'bookmanagement.books'不存在问题解决解决MySQL错误:无法找到表'bookmanagement.booksjava.sql.SQLSynt

从数据、产品、管理的视角探讨MES管理系统

MES生产管理系统在企业生产中扮演着关键角色,它集成了生产流程、数据应用、管理功能等多方面要素,为企业提供全面的生产运营支持。本文将从数据的视角聊聊MES管理系统,介绍其在数据管理、分析和利用方面的应用;从产品的视角,剖析其在生产过程管理、质量控制和追溯能力等方面的功能;最后从管理的视角,阐述其在生产调度、资源管理和决

KVCache原理简述

在GPT的推理过程中,它根据完整的提问和回答的已生成部分,来生测下一个词(的概率)。例如,我们的提问是【天王盖地虎,】,回答是【宝塔镇河妖。】。那么第一次,GPT根据【天王盖地虎,】生成【宝】,之后根据【天王盖地虎,宝】生成【塔】,以此类推,直到碰上终止符。这里面提问【天王盖地虎,】的QKV实际上重复计算了很多遍。由于

学了1个月机器学习的总结

书实在是厚,看不下去,还是看视频容易接受。总结:入门应该从如何把点拟合成一条线开始。先从统计学里的方差开始,扩展最小二乘法,引出线性回归。然后是逻辑回归,引出机器学习核心——求代价函数最小值。进而引出正则、学习率、过拟合欠拟合、偏差方差、准确率召回率、训练集验证集测试集等机器学习基础。进而扩展知识面,从线性到非线性,神

一、八大排序(sort)

文章目录一、时间复杂度(一)定义:常数操作二、空间复杂度(一)定义:三、排序(一)选择排序1.定义2.代码3.特性(二)冒泡排序1.定义2.代码3.特性(三)插入排序1.定义2.代码3.特性(四)归并排序1.定义2.代码3.特性(五)快速排序(六)堆排序(七)基数排序(八)计数排序一、时间复杂度(一)定义:常数操作与数

口袋参谋:淘宝生意参谋指数,如何一键转换成真实数值?

在淘宝天猫上,我们是无法直接清楚的,了解竞品真实数据,因为平台为了保护商家的权益,将真实数值全部隐藏起来了,也就是变成了我们能看到的虚拟指数。那我们在生意参谋中,从市场排行、市场大盘等地方,看到的交易额、支付人数、转化率、收藏人数、加购人数等数据都是指数,而不是实际值。这样的话,我们在做竞品分析时,基本上就失去参考价值

nginx反向代理

nginx反向代理8.反向代理8.1实现http反向代理8.1.1反向代理配置参数8.1.2反向代理单台web服务器8.1.2.1端口号后加"/"8.1.2.2端口号后不加"/"8.1.3指定location实现反向代理,动静分离8.1.4反向代理实例:缓存功能8.1.4.1举例8.1.5实现反向代理客户端IP透传8.

2024得物校招面试真题汇总及其解答(一)

1.有哪些查找优化算法查找优化算法是指可以提高查找效率的算法。常见的查找优化算法包括:二分查找:二分查找是一种基于分治思想的查找算法。它首先将查找范围缩小一半,然后再在缩小后的范围内进行查找,以此类推,直到找到目标元素或判断目标元素不存在。二分查找的平均时间复杂度为O(logn),其中n是数据集的大小。哈希表:哈希表是

Java常见面试题

目录1、mysql并发事务会带来哪些问题,如何解决?2、请详细描述Redis持久化机制?3、简述Redis缓存雪崩和缓存穿透的问题和解决方案?4、RabbitMQ消息丢失及对应解决方案5、什么叫线程安全?举例说明6、举例说明常用的加密算法7、synchronized和ReentrantLock有什么区别?8、synch

热文推荐