我前面的贴子说了:原来的utf-16现在不够用了,于是扩成了变长变码。
那既然用了变长编码,为啥不用utf-8?毕竟utf-8自带同步信息,而且在ascii内空间效率更高,也不用再区分宽窄字符串。
java/js的unicode string是u16,这是历史遗留问题。所以现在很尴尬。
python和apple的swift是少有的默认以utf-8处理字符的语言。swift是因为比较新,历史包袱小,python是因为破坏了兼容性,用了很长时间才从python2过渡到python3,现在已不再区分宽窄字符。大多数语言为了保持兼容性,没有将默认的字符串处理方式改成utf-8,只是把utf-16扩充成变长编码方式,不再依赖它的定长编码算法。比如JavaScript从 ES2015 开始添加了字符串方法和正则表达式标志,允许从与编码无关的角度处理字符串。——这就不依赖于定长编码方式了。
【 在 kirbyzhou 的大作中提到: 】
: 你就把u16string拿来用有啥不行的吗?
: java的string就是u16啊
--
修改:seablue FROM 111.200.40.*
FROM 111.200.40.*