windows 2字节的unicode怎么表示全部字符?

callmew 2019-02-21 10:28:05

unicode想要表示世界上所有字符需要用四个字节(因为unicode没有长度标记位),缺点是每个字符都要用四个字节
UTF-8也是可以表示世界上所有字符,但是好处是大部分字符只需要一两个字节就能表示
那么Windows内核中 unicode的长度是两个字节,怎么表示那些占3 4 个字节的中文?
...全文
242 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
godspeed_g 2019-02-27
  • 打赏
  • 举报
回复
我觉得题主可以参考这篇文章
https://blog.csdn.net/kemaWCZ/article/details/50749209
Windows使用的UTF-16其实是变长的,大部分使用2字节,但也可以用4字节。这个问题的细节确实很麻烦。特别是判断一个字符串里面究竟有几个字符的时候,不能简单的根据字符串占用的空间计算出来。
callmew 2019-02-27
  • 打赏
  • 举报
回复
引用 4 楼 godspeed_g 的回复:
我觉得题主可以参考这篇文章 https://blog.csdn.net/kemaWCZ/article/details/50749209 Windows使用的UTF-16其实是变长的,大部分使用2字节,但也可以用4字节。这个问题的细节确实很麻烦。特别是判断一个字符串里面究竟有几个字符的时候,不能简单的根据字符串占用的空间计算出来。
十分感谢!
threenewbee 2019-02-21
  • 打赏
  • 举报
回复
UTF-8也是可以表示世界上所有字符,但是好处是大部分字符只需要一两个字节就能表示 看清楚,是大部分字符,不是所有字符。不能用1、2字节表示的,就用3、4字节。
threenewbee 2019-02-21
  • 打赏
  • 举报
回复
引用 2 楼 callmew 的回复:
你说的这个我知道,但是我的问题是,为什么windows内核编码是2字节的unicode,但是我们平时使用时依然可以使用到全部的汉字(包括3-4个字节的字符)
所以要不就是windows内核编码其实是4个字节的unicode
不然就是windows有其他的处理方式,
你一会unicode一会儿utf,你在说什么
callmew 2019-02-21
  • 打赏
  • 举报
回复
你说的这个我知道,但是我的问题是,为什么windows内核编码是2字节的unicode,但是我们平时使用时依然可以使用到全部的汉字(包括3-4个字节的字符)
所以要不就是windows内核编码其实是4个字节的unicode
不然就是windows有其他的处理方式,

6,850

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧