`
阿尔萨斯
  • 浏览: 4267886 次
社区版块
存档分类
最新评论

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

 
阅读更多

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

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

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

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

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

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

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

分享到:
评论

相关推荐

    unicode 字符集 与 多字节字符集 转换的代码

    unicode 字符集 与 多字节字符集转换/kekegeneral

    Unicode字符集和多字节字符集关系[借鉴].pdf

    Unicode 字符集和多字节字符集关系 Unicode 字符集是为了整合全世界的所有语言文字而诞生的,任何文字在 Unicode 中都对应一个值,这个值称为代码点(code point)。代码点的值通常写成 U+ABCD 的格式。 Unicode ...

    MFC在unicode字符集下的多字节串口调试助手

    MFC在unicode字符集下的多字节串口调试助手,涉及到了MFC在unicode编码和多字节编码之间的转换,所用的编译器为VS2013,可以直接在VS2013中运行

    VS2013 多字节字符集支持

    VS2013 编译MFC 使用多字节字符集时报错 error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. 安装补丁解决。

    Unicode--宽字节字符集[文].pdf

    Unicode--宽字节字符集[文].pdf

    vs2008-Unicode字符集下CString与char_互转换

    在VS2008中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte Character Set),这样导致在VC6.0中非常简单实用的各类字符操作和函数在VS2008环境下运行时会报...

    unicode字符集下编写多字节的串口调试助手

    unicode字符集下编写多字节的串口调试助手,涉及到了unicode和多字节之间的转换

    C# 导入文件时字符集的处理问题

    2. 字符集的分类:字符集可以分为单字节字符集和双字节字符集,例如 ASCII、Unicode 等。 3. C# 中的字符串处理方式:C# 提供了多种字符串处理方式,例如 SubString 方法、GetBytes 方法等。 4. 字符集的应用:字符...

    字符集Unicode与UTF-8之间的转换

    "字符集Unicode与UTF-8之间的转换" 在计算机科学中,字符集和编码方式是非常重要的概念,特别是在多语言环境中。Unicode和UTF-8是两种常用的字符集和编码方式,本文将详细介绍它们之间的转换。 Unicode Unicode是...

    多字节、Unicode和UTF8字符串的互换

    多字节、Unicode和UTF8字符串的互换VB技术很实用的源码

    win系统GB18030字符集实现工具

    支持包安装成功后,转换工具 (gbunicnv.exe) 和微软4字节字符集编码支持包 (ms4bsp.dll) 会被安装在系统的 Program Files\GB18030Tools 文件夹下。用户可通过 Windows 2000 中的中文内码(Unicode) 输入法输入所需的 ...

    字节、比特、字、字长、字符串、字符集和代码页

    "字节、比特、字、字长、字符串、字符集和代码页" 在计算机科学中,有一些基本概念需要了解和区分,如字节、比特、字、字长、字符串、字符集和代码页等。这些概念都是计算机科学的基础,正确地理解它们对于编程和...

    oracle字符集查看与修改.pdf

    * UTF-8 是 Unicode 的 8 位编码方式,是一种变长多字节编码,这种编码可以用 1、2、3 个字节表示一个 Unicode 字符,AL32UTF8、UTF8、UTFE 是 UTF-8 编码字符集。 2.3 字符集超级 * 当一种字符集(字符集 A) 的...

    众多字符集编码的区别Unicode向GB2312转换方法说明及示例

    众多字符集编码的区别Unicode向GB2312转换方法说明及包括ASCII码部分及GB2312字符集。 ASCII码部分为128个字符,GB2312字符集为7445个字符。 ASCII码部分不需要用映射表。 GB2312 table可分为4段,每段都是连续的。...

    python3字符集说明.docx

    Unicode字符集是一种更广泛的字符集,它包含了世界上所有的字符,包括各种语言的字母、符号和标点符号。Unicode字符集可以使用不同的编码方式来表示,其中最常用的是UTF-8编码。 UTF-8编码是一种可变长度的编码方式...

    字符集——几种编码.doc

    亚洲语言的字符集通常数以千计,8 位已经不足以表达,这时使用一种很凌乱的双字节字符集(DBCS)系统来解决。 然而,随着 Internet 的发展,字符串要从一个机器上移到另一个机器上,这就产生了问题。于是,Unicode ...

    vs打开vc工程后unicode字符串替换

    当vs2013只支持unicode字符集,打开vc6.0版本的工程后,需要把字符串的形式从 "aaa" 转换成 _T("aaa"),手工转换工作量大,本程序可实现批量转换,操作方法是将原文件内容复制过来,点击转换按钮,然后再复制回去即可...

    UTF8,ANSI,UTF7,UNICODE,UTF32等字符集字符串与字节数组互转工具

    UTF8,ANSI,UTF7,UNICODE,UTF32等字符集字符串与字节数组互转工具,方便调试学习

    Unicode下CString与char*之间的转换(vs2008绝对实用)

    在VS2008中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte Character Set),这样导致在VC6.0中非常简单实用的各类字符操作和函数在VS2008环境下运行时会报...

    让开源项目TinyXml支持Unicode(wchar_t)

    开源项目TinyXml项目所涉及的字符编码说明... - 新增适用于`宽字符`参数的函数接口,调用字符集转换功能,转换为`窄字符`参数,再回调TinyXml原版接口。 - 对于以UTF16编码、或UTF32编码的Xml字符串,转换为UTF8编 --

Global site tag (gtag.js) - Google Analytics