Unicode

来源:互联网 发布:凯立德端口波特率检测 编辑:程序博客网 时间:2024/05/17 22:41

unicode开始制订时,计算机的存储器容量极大地发展了,空间再也不成为问题了。于是 ISO 就直接规定必须用两个字节也就是16位)来统一表示所有的字符,对于ASCII里的那些“半角”字符,unicode包持其原编码不变,只是将其长度由原来的8位扩展为16位,而其他文化和语言的字符则全部重新统一编码。由于”半角”英文符号只需要用到低8位,所以其高8位永远是0,因此这种大气的方案在保存英文文本时会多浪费一倍的空间。


这时候,从旧社会里走过来的程序员开始发现一个奇怪的现象:他们的strlen函数靠不住了,一个汉字不再是相当于两个字符了,而是一个!是的,从unicode开始,无论是半角的英文字母,还是全角的汉字,它们都是统一的”一个字符“!同时,也都是统一的”两个字节“。


请注意”字符”和”字节”两个术语的不同。“字节”是一个8位的物理存贮单元,而“字符”则是一个文化相关的符号。在unicode中,一个字符就是两个字节。一个汉字算两个英文字符的时代已经快过去了。



作者:于洋
链接:https://www.zhihu.com/question/23374078/answer/69732605
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
0 0
原创粉丝点击