单字节字符集,多字节字符集,Unicode

摘要:
MBCS代码包含一个字节长的一些字符,而其他字符则超过一个字节。Windows中使用的MBCS包含两种类型的字符,单字节字符和双字节字符。前导字节子段后面的字节称为“前导字节”。第三种编码模式是Unicode。请注意,Unicode不能被视为MBCS。Unicode字符串使用双字节0作为结束符号。单字节字符包括拉丁字母、重音字符和ASCII标准和DOS操作系统定义的图形字符。Unicode用于COM和Windows NT操作系统。Unicode字符和字符串常量由前缀L表示。

我们在这里介绍一下字符类型。这里有3种编码模式对应3种字符类型。

第一种编码类型是单子节字符集(single-byte   character   set   or   SBCS)。在这种编码模式下,所有的字符都只用一个字节表示。ASCII是SBCS。一个字节表示的0用来标志SBCS字符串的结束。  

第二种编码模式是多字节字符集(multi-byte   character   set   or   MBCS)。一个MBCS编码包含一些一个字节长的字符,而另一些字符大于一个字节的长度。用在Windows里的MBCS包含两种字符类型,单字节字符(single-byte   characters)和双字节字符(double-byte   characters)。由于Windows里使用的多字节字符绝大部分是两个字节长,所以MBCS常被用DBCS(double-byte   character   set   or   DBCS)代替。

在DBCS编码模式中,一些特定的值被保留用来表明他们是双字节字符的一部分。例如,在Shift-JIS编码中(一个常用的日文编码模式),0x81-0x9f之间和   0xe0-oxfc之间的值表示"这是一个双字节字符,下一个子节是这个字符的一部分。"这样的值被称作"leadingbytes",他们都大于0x7f。跟随在一个leading   byte子节后面的字节被称作"trail  byte"。在DBCS中,trail  byte可以是任意非0值。像SBCS一样,DBCS字符串的结束标志也是一个单字节表示的0。  

第三种编码模式是Unicode。Unicode是一种所有的字符都使用两个字节编码的编码模式。Unicode字符有时也被称作宽字符(Wide Character),因为它比单子节字符宽(使用了更多的存储空间)。注意,Unicode不能被看作MBCS。MBCS的独特之处在于它的字符使用不同长度的字节编码。Unicode字符串使用两个字节表示的0作为它的结束标志。  

单字节字符包含拉丁文字母表,accented   characters及ASCII标准和DOS操作系统定义的图形字符。双字节字符被用来表示东亚及中东的语言。Unicode被用在COM及Windows  NT操作系统内部。  

你一定已经很熟悉单字节字符。当你使用char时,你处理的是单字节字符。双字节字符也用char类型来进行操作(这是我们将会看到的关于双子节字符的很多奇怪的地方之一)。Unicode字符用wchar_t来表示。Unicode字符和字符串常量用前缀L来表示。

免责声明:文章转载自《单字节字符集,多字节字符集,Unicode》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇springboot之多数据源配置JdbcTemplate不错的TOMCAT监控好工具probe下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[转载]Unicode中对中文字符的编码

以前写过一篇贴子是写中文在unicode中的编码范围 unicode中文范围,但写的不是很详细,今天再次研究了下unicode,并给出详细的unicode取值范围。 本次研究的unicode对象是unicode 5.2.0版本。现在最新的是6.0版 对于这次研究的unicode把编码分为以下几个平面(英文中是plane,可以认为就是不同的区位) Unico...

[MySQL] 字符集的选择

1、 Mysql支持的字符集MySQL服务器可以支持多种字符集,不同的字段都可以使用不同的字符集。 查看所有可用字符集: show character set; select * from information_schema.character_sets;   MySQL的字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念。其...

等价类划分方法的应用(二)

等价类划分方法的应用(二) 题目: 三个EditBox,全部值允许输入1-6个英文字符或数字,按OK结束。 以输入条件划分等价类: 输入的字符串必须满足以下条件: 条件1:第一行长度1-6 条件2:第一行字符为'0'-'9'或'a'-'z'或'A'-'Z' 条件3:第二行长度1-6 条件4:第二行字符为'0'-'9'或'a'-'z'或'A'-'Z' 条件...

解决SpringBoot 报错 Error parsing HTTP request header

一、SpringBoot 项目,使用自带tomcat 1、问题描述 接收 application/x-www-form-urlencoded Post 参数 data={"data":[{"id_dev":"CSB000001","state":"online","on_ts":1526004805}, {"id_dev":"CSB000001","sta...

mysql学习笔记(三)----函数

Mysql函数 数学函数 函数名 描述 Eg ABS(X) 绝对值 Select ABS(-2); PI() 圆周率 Select PI(); SQRT(X) 平方根 Select sqrt(X); MOD(X,Y) 求余 Select mod(4,3); CEIL(X) 返回不小于X的最小整数 Select ceil(3.5);...

c# 获取键盘的输入

c# 获取键盘的输入  Console 类公开了三个方法获取键盘的输入,分别是Read 、Readkey、ReadLine Read方法: 每次只能读入一个字符,如果没有字符可以读,返回-1,Read方法是不会马上读取的,读取的事件是按下Enter键才会开始读取 ReadKey方法: 返回一个ConsoleKeyInfo结构的实例,通过这个结构的几个属性...