utf-16

wiki UTF-16

编程语言的使用

utf-16可以算是2字节定长编码。
字符处理方便且速度快,算长度啊,定位字符啊,正则匹配等。
所以许多编程语言的内部编码都是utf-16。
java、js、c#、python默认的字符串内部编码都是utf-16。

然而那些unicode超出U+FFFF的字符需要4个字节表示。
就出坑了,如js代码

a = "我是𪚥" // a.length == 4
b = a[2] // b是个乱码,而不是'𪚥'

优点

  • 2字节定长编码,处理速度快。【有些字符要4个字节,如"𪚥"】
  • 节省空间。非ascii字符多数可用2字节表示,utf-8下很多汉字要3个字节。

缺点

  • 不兼容ascii。
  • 一些字符是4个字节,会出bug,如"𪚥"。
  • 需要区分字节序。文件保存一般有个bom头:BE-'FEFF'、LE-'FFFE'。

特殊的编码

U+D800到U+DFFF是没有定义unicode的,utf-16用这段来标识4字节字符。分高低位,共20个有效bit位。
如果不支持非UCS-2的unicode,可以直接不认这个范围里的字符。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 写在前面 如果你是iOS开发者,并且在处理NSString字符上遇到了一些问题,强烈建议去看看Objc中国上关于 ...
    凌云壮志几多愁阅读 11,376评论 0 5
  • 多数时候,我们都想用深邃的文字来掩盖自己内心真实想法,为他穿上亮丽的的衣服,画上美丽的妆容。小时候,看着警察叔叔秉...
    花卷的日常阅读 1,706评论 0 0
  • 入职不久,我幸运的租到了离公司不远的“人才公寓”(当然,我不是人才),物业有政府补贴,所以租金比相同地区的房子便宜...
    XavierQu阅读 1,877评论 0 1
  • 中间业务的概念和特点 指银行为客户办理收付及其他委托代理事项、提供各种金融服务的业务。按中国人民银行的规定,中间业...
    骚的掉渣阅读 3,882评论 0 1
  • 1.下载安装CocoaPods 下载之前先把ruby的源指向淘宝的地址:https://ruby.taobao.o...
    lg大大阅读 3,372评论 0 50

友情链接更多精彩内容