操作系统的设计中,编码是”热插拔“的吗?

2021-08-17 23:03:16 +08:00
 nowheretoseek

是不是说操作系统完全建构于 ASCII ( 0-127 )之上,然后对其它语言的支持是“可增减”的?

比如说,如果某天发生了星外文明的接触,人类了解了他们的语言,需要处理他们的文本。是不是设计一套类似 unicode 的字符编码方案和相应的字体,安装到操作系统中,就可以用人类的计算机处理他们的信息了,而不必对目前的计算机、操作系统做底层的更改?

一些底层没有 Unicode 支持的编程语言,比如 python2 是不是在应对这样的需求时,反而更加灵活?

1682 次点击
所在节点    问与答
23 条回复
msg7086
2021-08-18 19:46:39 +08:00
Unicode 一直在被 new 。最后一个版本是 Unicode 13.0,正在做的草案是 14.0,如果有外星文字出现的话,做个 15.0 就行了,问题解决。Unicode 的容量可以说是无限的。

Unicode 可以看作是文字的索引。比如字母 A 的号码是 65,比如火星文里某个字的号码是 114514,假如某个外星文字有一亿个不同的字符,那就给他们编一亿个编号。新版本的 Unicode 就是给更多的字编号,给他们一个“名分”。

然后这个数字怎么保存在文件里或者内存里,这个就是用到编码转换,比如你把 65 保存成 00 00 00 41 这就是一种表示方法。如果有朝一日不够用了,就扩展成能表示更多号码的格式,比如 8 字节,16 字节长度等等。这个过程本来在这十几年里就一直在发生着,越来越多的少数用户语言被加入到 Unicode 中。外星语言只不过是另一种待加入的普通语言罢了。
nowheretoseek
2021-08-18 21:30:07 +08:00
@msg7086 了解关键了,结合 @ipwx 对 utf-8 的强调,可以这么理解吧?可无限扩展的 Unicode+8 位为基本单元的可变长度的 utf-8,足以适应未来可预见的扩展需求,并保证存储效率和后向兼容性。
msg7086
2021-08-19 08:54:36 +08:00
@nowheretoseek 是的。现在的 UTF-8 如果再扩展的话,最多可以表示 1 亿以上的数据点。
如果实际需求更大的话,那就再发明新的编码方式就行了。
世界从当年的本地字符集过渡到 Unicode 也就花了几年十几年的时间,在人类发展历史中基本都是小问题。
(光从 IPv4 到 IPv6 要过渡多少年想想就蛋疼……)
现代化的计算机系统里,这些东西都是尽可能模块化的,就算要彻底替换,也不是特别困难的事情。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/796423

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX