`

单字节字符集,多字节字符集,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

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

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

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

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

    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和多字节之间的转换

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

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

    win系统GB18030字符集实现工具

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

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

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

    python3字符集说明.docx

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

    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编 --

    unicode格式的字符串进行URL编码

    但是找遍了精易模块和百度都没有说有这这个命令 让Unicode字符串(易语言里面以字节集表示)直接进行正确的URL编码。所以就自己写了一个JavaScript脚本 进行URL编码。原理就是先把unicode字符串转换成BASE64编码文本。...

    EnumSerial(unicode)

    使用该方法要在你的程序中,添加“ EnumSerial.cpp ”和“ EnumSerial.h ”两个文件,并且将 Setupapi.lib 包含进你的工程,方法在项目属性-配置属性-连接器-... 修改如下属性【字符集】的值为【使用多字节字符集】

    Delphi中处理字符串的相关方法

    Delphi中处理字符串的相关方法 1、字符集转换方法 (1)stringtowidechar function stringtowidechar(const ...将sourcelen长度的unicode编码字符串转换为单字节或多字节字符串。实际的转换是通过调用win32 API函数

    JavaScript字符集编码与解码详谈

    字符集是多个字符的集合,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、Unicode字符集等。 3)字符集编码(Character Encoding) 字符集编码就是将符号转换为计算机可读的二进制,...

    CStringtest.rar

    C++字符串中截取指定两个子字符串之间的可变长度的子字符串,Unicode 字符集、多字节字符集,X64,X86均可使用。

Global site tag (gtag.js) - Google Analytics