为什么没有 UTF-24 这种编码?

2017-10-22 00:28:38 +08:00
 asiufasd
unicode 有 17 个 code plane,总共规划了 1,114,112 个 code point,而 UTF-24 可以表示 16,777,216 个 code point,可以定长编码,每个文字三字节,还比 UTF-32 的编码少了一字节的存储空间,但是为什么没听说过这种编码
6289 次点击
所在节点    程序员
30 条回复
hjc4869
2017-10-22 13:47:25 +08:00
@noli 并非不可行,UTF-8 和 UTF-16 互转现在大家都是 SIMD 了,随便 Google 一下就能查得到实现。
msg7086
2017-10-22 14:25:51 +08:00
@noli UTF-8 最初是为了向后兼容 7-bit,可以在单字节文字的世界里无缝切换,方便推广。
就说 Windows 上强推 UTF-16 来着,结果搞得各种兼容性问题,宽字符窄字符要死要活的。
而且 UTF-8 本身可扩展,以前最长可以用到 6 字节,不像 UTF-16 这样定长然后不够用了就 GG。

流式处理还是怎么处理倒不是最主要的。
毕竟这玩意不想做视频做图像,动不动就上亿的数据量。
文字,撑死也就那么点数据,性能并不重要。
noli
2017-10-22 14:37:32 +08:00
@hjc4869 我粗略看了一下 AVX 的指令集的一些指令功能,感觉做不出来,不知道怎么做,想不到居然真有实现了的,长见识了。有没有关键字提供一下?
hjc4869
2017-10-22 15:00:37 +08:00
msg7086
2017-10-22 15:12:39 +08:00
@noli
@hjc4869
刚花了时间读了一下,只能感叹做得真精妙。
(虽然从这大量的位操作就能看出这过程有多么痛苦了……
pinews
2017-10-22 20:50:30 +08:00
如果计算机发源于中国,编码优先考虑汉字的话,楼主说的情况极有可能发生的,说不定还能成为全球唯一编码呢。。
dishonest
2017-10-23 06:33:12 +08:00
@noli 拉黑吧,好走不送。反正你让我觉得你在生活中一定是个脾气暴躁,动不动就怼天怼地怼空气的人。
dishonest
2017-10-23 06:34:07 +08:00
@noli 还特地每个都喊一声 我要拉黑, 笑尿。联想起 lol 里面的德玛西亚。
jetyang
2017-10-23 09:23:07 +08:00
我觉得大家关注点偏了。unicode7.0 标准里 17 个面现在用了多少?是不是要大规模的去扩充 codepoint 空间?变长编码和定长编码相比有什么好处?

UTF-8 的编码思路并非只用在字符编码上,一些压缩算法也是一样的思路,楼主加油
iceheart
2017-10-23 19:29:08 +08:00
UTF-8 ( 8-bit Unicode Transformation Format )
UTF-16 ( 16-bit Unicode Transformation Format )
先把概念搞清楚再讨论问题。
当然,这个问题的概念搞清楚了,问题也就没必要讨论了。

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

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

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

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

© 2021 V2EX