具体一点,指的是字符集不兼容的编码
比如一个字 你(以下均为瞎编的数
先从文件读出来 utf8 编码 01111111111
算出 Unicode 是 233
gtk 中的编号是 322
按 gtk 的方式编码,得到 01010110101010
他怎么知道 Unicode 中的 233 和 gtk 中的 322 是一个字呢,难道要维护一个巨大的各种字符集之间的映射关系么,还是说大部分都是互相兼容的,两边都是 233
1
dcsuibian 2022-03-16 20:02:11 +08:00
猜测,既然 Unicode 是统一的,那就对应到 Unicode 。然后就可以互相转了吧。
想成一个图的话,每个字符集是一个点,两两字符集之间的关系一条边。原来数量级是 n^2 的话,那现在就是 n 了。 |
3
shuax 2022-03-16 20:09:29 +08:00 via Android
有些是可以直接算法转换,有些要查表,表也不是很大吧。
|
4
dcsuibian 2022-03-16 20:31:11 +08:00
@ScepterZ 从没想过这个问题。打开 Vscode 看了一下,看到了大概四五十个选项,而且前缀不少还一样,估计有不少兼容的问题,少部分可以特判。既然要统一,至少可以分摊到国家,时间、人员什么的又可以分摊下去。
还有很多地方可以压水分吧。 最主要是,咱们中日韩越 CJKV 是表意文字,跟人家表音的字符数量完全不是一个量级。😂 |
6
eason1874 2022-03-16 20:56:44 +08:00
GBK 和 Unicode 不兼容,但查表也很快,十万个汉字,你感觉是巨大的表,实际上按 4 字节去算加起来也不到 400KB
|
7
ysc3839 2022-03-16 21:03:25 +08:00 via Android
大部分编码之间互相转换是要查表的
|