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

第23集的文字稿

[复制链接]

421

主题

316

回帖

3313

积分

管理员

积分
3313
发表于 2024-12-4 15:29:17 | 显示全部楼层 |阅读模式
001.
在课程的一开始,我们说每个国家和地区都制定自己的字符集和编码标准。这个时期的主要问题是各搞一套,万码奔腾,互不兼容,同一个字符编码,在不同的国家和地区代表不同的字符。


接下来我们又讲到,国际标准化组织ISO和统一字符集联盟Unicode协同工作,全球所有国家参与,制定了统一字符集UCS,包罗全球所有文字,并且每个字符都具有唯一的编码。严格来说是所有字符都具有唯一的UTF-8、UTF-16和UTF-32编码。


按道理来说,现在应该是全球统一字符集UCS及其字符编码的天下,传统的字符集和字符编码都应该销声匿迹,但现实似乎并不是这样。


在某种程度上,这是一种错觉,因为从现实来看,经过这么多年的发展,全球统一字符集及其编码方案确实是占主导地位的。但是由于存在很多历史包袱,迫使很多系统和软件不得不依然支持传统的字符集和编码方案。


首先,有大量的老软件和源代码使用了传统的字符集和编码方式处理文本,而且基本上没有办法修改它们。


其次,很多操作系统和基础软件在早期用的是处理传统的字符集和编码方案,尽管后来引入了统一字符集及其编码方案,但依然要兼容以前的软件和文档。


002.
我们以Windows操作系统为例,Windows内核支持统一字符集UCS,并且它采用的编码方案是UTF-16LE,使用1到2个16比特来表示一个字符。如此一来它就可以同时表示和支持全球的所有文字,并且每个字符都拥有唯一的编码。


在内核之外是各种各样的应用程序,有运行在命令行窗口里的控制台程序,还有大量的图形用户界面程序,它们都需要在内核的支持和服务下才能正常运行。


应用程序通过Windows编程接口(API)调用内核提供的服务,很多系统服务涉及文本信息,比如显示文本;在创建窗口时指定窗口的标题;播放音乐时指定音乐文件的名字,等等。


由于Windows内核使用的是UTF-16LE,所以应用程序最好是也使用UTF-16LE编码方案,这样就可以与内核直接交换文本信息。但是,也有很多程序依然在使用传统的字符集和编码方案,这里面的原因是多种多样的。在这种情况下,在应用程序和内核之间交换文本信息时,需要来回转换编码。


在Windows上,应用程序分为两大类,第一类是控制台程序,要运行在命令行窗口里面;另一类是图形用户界面程序。


所有图形用户界面的程序所使用的字符集和编码方案取决于当前的区域设置。如果你选择是区域是中文/中国,则使用GB2312字符集及其编码方案,而且整个系统的界面都是中文的;如果你选择的区域是别的国家和地区,则使用那个国家和地区的字符集及其编码方案,而且整个系统的界面都是那种文字。


和图形界面的程序不同,每个控制台程序都可以随意设置区域,并因此而影响输入与输出的文本以及数据和日期的格式。


003.
再来看互联网,互联网的规模巨大,用户极其分散,分布在世界各地。在互联网上,每台服务器和每个浏览器都应当有能力处理来自各个国家的语言文字,这很重要。同时,考虑到网络传输的效率,以及对ASCII字符集和编码的兼容性,在互联网上使用统一字符集UCS并采用UTF-8编码方案无疑是最优的选择。




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

本版积分规则

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

GMT+8, 2024-12-26 22:04 , Processed in 0.228704 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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