找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 598|回复: 0

第26集的文字稿

[复制链接]

432

主题

324

回帖

3658

积分

管理员

积分
3658
发表于 2024-12-23 15:36:23 | 显示全部楼层 |阅读模式
001.
在编程时,会涉及多字节字符和宽字符的概念。我们知道,有些编码方案是不定长的,比如GB 2312的编码方案就是不定长的,对ASCII字符采用一个字节,对汉字采用两个字节;


GB 18030也是不定长的,对ASCII字符采用一个字节;对有些汉字采用两个字节,而另一些汉字则采用4个字节;


再比如UTF-8编码,它的编码可能是一个字节、两个字节、三个字节甚至是四个字节。


如果采用不定长的编码方案来编码字符,则我们称之为多字节字符。


相反地,有些编码方案是定长的,比如UTF-16和UTF-32。如果采用定长的编码方案来编码字符,我们称之为宽字符。


以C语言为例,C语言用元素类型为char的数组来保存多字节字符,用元素类型为wchar_t的数组来保存宽字符。wchar_t类型的确切长度随平台而异,在Windows上,wchar_t类型的宽度为16位的,通常用来保存utf-16编码;而在Linux上则是32位的,用来保存utf-32编码。


为了确保平台之间的一致性,C语言随后引入了char16_t和char32_t,并且保证前者在任何平台上都是16位的,而后者在任何平台上都是32位的。就引入这两种数据类型的动机而言,是要用char16_t类型保存UTF-16编码,用char32_t类型来保存UTF-32编码。




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2025-6-8 06:13 , Processed in 0.257430 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表