社区
Delphi
帖子详情
请问,Unicode Character Set 和 DBCS,有何不同?
cutepine
2003-08-25 10:08:05
请问,Unicode Character Set 和 DBCS,有何不同?
...全文
140
3
打赏
收藏
请问,Unicode Character Set 和 DBCS,有何不同?
请问,Unicode Character Set 和 DBCS,有何不同?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DWGZ
2003-08-25
打赏
举报
回复
Borland是这样解释的
要书的请到
http://expert.csdn.net/Expert/topic/2163/2163244.xml?temp=.3149225
-----------------------------------------------------------------
Windows 和Linux 都支持单字节和多字节字符集,同样也支持Unicode。使用单字节字符集(SBCS),
字符串的每个字节表示一个字符。ANSI 字符集被许多西方(国家的)操作系统使用,它是单字节字符
集。
在多字节字符集(MBCS)中,一些字符由一个字节表示,而另一些则使用多个字节。多字节字符的第
一个字节称为头字节(lead byte)。通常,在多字节字符集中,前128 个字符对应于7 位ASCII 字符(0-127),
任何序数值大于127 的字节为多字节字符的头字节。只有单字节字符能包含空值(#0)。多字节字符集
(特别是双字节字符集,DBCS),被亚洲语言广泛使用,但Linux 使用的UTF-8 字符集是Unicode 的一
种多字节编码。
在Unicode 字符集中,每个字符用两个字节表示,所以,一个Unicode 字符串是由双字节组成的序列。
Unicode 字符和字符串也被称为宽字符和宽字符串。前256 个Unicode 字符被映射到ANSI 字符集。
Windows 操作系统支持Unicode(UCS-2)。Linux 操作系统支持UCS-4,是UCS-2 的超集。Delphi/Kylix
在两个平台上都支持UCS-2。
Object Pascal 支持单字节和多字节字符以及字符串,适用的类型有:Char、PChar、AnsiChar、PAnsiChar
和AnsiString。对多字节字符串使用索引是不可取的,因为S[i]表示S 中第i 个字节(不一定是第i 个字
符),但是,标准字符串处理函数有多字节版本,它们还实现了locale-specific ordering for characters(多
字节函数的名称通常以Ansi 开头,比如StrPos 的多字节版本是AnsiStrPos)。多字节支持依赖于操作系
统和本地设置(current locale)。
Object Pascal 使用WideChar、PWideChar 和WideString 类型支持Unicode 字符和字符串。
DelphiBoy2003
2003-08-25
打赏
举报
回复
DBCS是一种双字符集,不过不太好,会引起附加编程!因为DBCS对待ASCII码仍然是一个字节代表一个字符,而中文这类字符才是两个字节代表一个字符。
而Unicode则是无论中文英文,都是用双字节来表示一个字符,这样就不会引起附加编程
lxpbuaa
2003-08-25
打赏
举报
回复
DBCS(DoubleBytes Characters Set)是一种字符集规范,它规定用两个字节表示一个字符,这样和单字节字符集相比,可以容纳更多的字符。Unicode Character Set 是按照DBCS规范实现的一种字符集方案。
————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
Multi-Byte
Character
Set
&
Unicode
Character
Set
编程时遇到BUG:error C2440: cannot convert from 'const char [7]' to 'LPCWSTR',查找后发现错误原因之一竟然是字符串的字符集编码模式造成。
Multi-Byte
Character
Set
& Use
Unicode
Character
Set
所有的 string 类都是以C-style字符串为基础的。C-style 字符串是字符数组。所以我们先介绍字符类型。这里有3种编码模式对应3种字符类型。第一种编码类型是单子节字符集(single-byte
character
set
or SBCS)。在这种编码模式下,所有的字符都只用一个字节表示。ASCII是SBCS。一个字节表示的0用来标志SBCS字符串的结束。 第二种编码模式是多字节
Multi-Byte
Character
Set
& Use
Unicode
Character
Set
.
所有的 string 类都是以C-style字符串为基础的。C-style 字符串是字符数组。所以我们先介绍字符类型。这里有3种编码模式对应3种字符类型。第一种编码类型是单子节字符集(single-byte
character
set
or SBCS)。在这种编码模式下,所有的字符都只用一个字节表示。ASCII是SBCS。一个字节表示的0用来标志SBCS字...
Unicode
和 UTF-8
有何
区别?
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成
不同
的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为”字节“。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为”计算机“。 开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种
不同
的状态。 ...
重拾VB6(32):Issues Specific to the Double-Byte
Character
Set
(
DBCS
)
来自MSDN-2001-OCT: Visual Tools and Languages/Visual Studio 6.0 Documentation/Visual Basic Documentation/Using Visual Basic/Programmer’s Guide/Part 2: What Can You Do With Visual Basic/International Iss
Delphi
5,386
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章