`

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

    VS2013 多字节字符集支持

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

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

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

    双字节 多字节 宽字节 Unicode

    这包括双字节字符集和其他更复杂的字符编码方案,例如一些特殊的东亚字符集可能需要超过两个字节来表示单个字符。 **2. 宽字符集** 宽字符集(Wide Character Set)是一种使用固定宽度的字符编码方式,最常见的是...

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

    本文将深入探讨如何在Visual Studio 2013(VS2013)环境下,利用MFC进行Unicode与多字节字符集之间的转换,并创建一个串口调试助手。 首先,我们要理解Unicode和多字节字符集的区别。Unicode是一种国际标准,它定义...

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

    宽字节字符集(如DBCS,Double Byte Character Set)则是Unicode的一种实现方式,尤其适用于东亚语言,如中文、日文和韩文,这些语言的字符数量众多,单字节不足以表示全部字符。 1. 计算字符串字符个数: 在处理...

    单字节 多字节 双字节 相互转换

    Unicode 定义了一个巨大的字符集,包含了世界上绝大多数语言的字符。 宽字符(Wide Character)是一种特殊的字符类型,它可以表示 Unicode 字符集中的任何字符。宽字符通常用 `wchar_t` 类型表示,在C语言中,可以...

    在vs2013中默认不再包含对多字节字符编码的支持

    标题中的“在vs2013中默认不再包含对多字节字符编码的支持”指的是Visual Studio 2013在默认配置下不再提供对多字节字符集(MBCS,Multi-Byte Character Set)的开箱即用支持。这在开发过程中可能会对处理非Unicode...

    unicode 汉字字符集

    ### Unicode汉字字符集...通过了解这些基础概念和技术细节,我们可以更好地理解和应用Unicode汉字字符集,从而有效地处理中文文本和其他多语言数据。这对于软件开发、数据库管理、自然语言处理等领域都有着重要的意义。

    Win32 下 Unicode-多字节字符串 转换工具

    它需要源Unicode字符串、编码页(决定多字节字符集)、转换选项以及其他参数,然后返回转换后的多字节字符串。 2. `MultiByteToWideChar`:与`WideCharToMultiByte`相反,此函数将多字节字符串转换为Unicode字符串...

    Java Unicode 和字符集

    ### Java中的Unicode与字符集详解 #### 一、引言 在软件开发过程中,正确处理文本数据至关重要。尤其是在全球化日益加深的今天,软件不仅要能够处理英语等常见的西方语言,还要支持世界各地的语言,包括中文、日文...

    oracle字符集的查看和client字符集的修改

    Oracle支持多种字符集,包括单字节字符集(SBCS)、多字节字符集(MBSCS)以及Unicode字符集等。 - **单字节字符集(Single Byte Character Set, SBCS)**:每个字符由一个字节表示。 - **多字节字符集(Multi Byte ...

    unicode字符和多字节字符的相互转换接口及测试工程

    然而,多字节字符集可能在处理非本地字符时产生问题,因为不同的多字节编码之间可能存在不兼容性。 本项目中的"StringConvert"可能包含以下关键接口: 1. `UTF8ToMultiByte`: 这个函数将UTF-8编码的字符串转换为...

    Unicode字符集

    Unicode字符集,全称为“统一码”或“万国码”,是计算机领域中广泛采用的一种字符编码标准。它的设计目标是为全球各种语言的每一个字符提供一个唯一且统一的二进制表示,以便于跨语言、跨平台的文本处理。Unicode自...

    计算字符串中的单双字节字符个数

    单字节字符通常指的是ASCII字符,而双字节字符则涉及到Unicode字符集,如汉字和其他非英文字符。下面将详细探讨如何计算字符串中的单双字节字符个数,以及它们在实际应用中的作用。 首先,让我们理解什么是单字节...

    unicode字符集转换函数

    ISO8859是国际标准化组织定义的一系列单字节字符集,分为多个部分,如ISO8859-1(拉丁文1)等,它们主要覆盖了西欧语言。这些字符集的优点在于它们只需要一个字节来表示字符,但在处理非西欧语言或特殊符号时,其...

    多字符集与宽字符集互转公共类

    本文将详细讨论“多字符集”与“宽字符集”之间的转换,以及如何利用提供的公共类`CBW`实现这一功能。 首先,我们来理解什么是多字符集和宽字符集。在早期的计算机系统中,ASCII字符集是最常见的,它只包含128个...

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

    在C++中,可以使用`WideCharToMultiByte`和`MultiByteToWideChar`函数进行宽字符(Unicode)与多字节字符集间的转换;在Python中,可以使用`encode`和`decode`方法,指定相应的编码格式进行转换。 编写这样的串口...

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

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

    多字节与UTF-8、Unicode之间的转换

    1. **多字节字符集(MBCS)**:多字节字符集是指非固定长度的字符编码,例如Windows中的CP_ACP(ANSI代码页)。它可以根据不同的语言环境使用不同数量的字节来表示一个字符。 2. **UTF-8**:UTF-8是一种可变长度的...

Global site tag (gtag.js) - Google Analytics