不可不知的 Unicode
“二哥,上一篇文章中提到了 Unicode,说 Java 中的
char 类型之所以占 2 个字节,是因为 Java 使用的是 Unicode 字符集而不是 ASCII 字符集,我有点迷,想了解一下,能细致给我说说吗?”
“当然没问题啊,三妹。”
1)ASCII
对于计算机来说,只认 0 和 1,所有的信息最终都是一个二进制数。一个二进制数要么是 0,要么是 1,所以 8 个二进制数放在一起(一个字节),就会组合出 256 种状态,也就是 2 的 8 次方(2^8),从 00000000 到 11111111。
ASCII 码由电报码发展而来,第一版标准发布于 1963 年,最后一次更新则是在1986 年,至今为止共定义了 128 个字符。其中 33 个字符无法显示在一般的设备上,需要用特殊的设备才能显示。
ASCII 码的局限在于只能显示 26 个基本拉丁字母、阿拉伯数字和英式标点符号,因此只能用于显示现代美国英语,对于其他一些语言则无能无力,比如在法语中,字母上方有注音符号,它就无法用 ASCII 码表示。

PS:拉丁字母(也称为罗马字母)是多数欧洲语言
本文详细介绍了ASCII和Unicode字符集的区别,以及Unicode如何解决多语言编码问题。通过阐述ASCII的局限性,说明Unicode的必要性,并讨论了Unicode编码的实现方式如UTF-8和UTF-16。同时,文章通过Java中的char类型为例,解释了Unicode编码的发展如何影响编程语言的设计。
订阅专栏 解锁全文
2406

被折叠的 条评论
为什么被折叠?



