字符编码地址空间

一个字节8位。一个int占4个字节。
一个char存一个字节,UTF-8用char数组来存,每个char可能存“半个字”或者“三分之一个字”等等。
Unicode表示方式由很多种。每个字按8位(一个字节)为一个“整体”来拆分,叫做UTF-8编码。每个字按16位(两个字节)为一个“整体”来拆分,叫做UTF-16编码。每个字按32位(四个字节)为一个“整体”来拆分,叫做UTF-32编码。
只有UTF-32是定长的,其他都是不固定长度的。
一个UTF-8占1至4个“整体”,所以是1至4个字节。
一个UTF-16字符占1至2个“整体”,所以是占用2个或4个字节。
一个UTF-32只占一个“整体”,所以都是四个字节。
Windows上的wchar_t类型占两个字节,所以用wchar_t数组来存UTF-16编码的文字,其中每个wchar_t储存一个字或半个字。
Linux上的wchar_t类型占4个字节,所以用wchar_t数组来存UTF-32编码的文字,其中每个wchar_t储存一个字。

原文地址:https://www.cnblogs.com/HaibaraAi/p/4568791.html