char16_t&u16string


在VS2015上,实验结果表明:

 (1)char16_t

 一个char16_t只能保存2字节,所以只能用0000~ffff范围内的字符对其进行初始化或赋值,使用比0000 ffff大的编码,直接报错

 二进制打印出char16_t的值,严格等于utf16编码,在这个范围内,也就是严格等于unicode编码

 (2)u16string

 复制一个unicode字符构造一个unicode字符串,用来初始化u16string:

 u16string ss(u"X");

 如果X在0000~ffff范围内,最终ss会包含两个char16_t,ss[0]严格等于X的unicode编码,ss[1]为终结符001C

 如果X在ffff以上的范围内,最终ss会包含两个char16_t,严格等于上面UTF-16编码转换后的4字节

 
 

 char32_t&u32string

 u32string是按照UTF32编码来保存字符的,也就是完全和unicode编码一一对应,,每个字符用32bits来保存

 (1)char32_t

 一个char32_t四个字节,可以保存所有的unicode字符。但是要注意初始化时,字符常量前要用U

 (2)u32string

 对于u32string ss(U“你”); ss有两个元素,ss[0]为"你"的unicode编码,ss[1]为0000001c
 
原文链接:https://blog.csdn.net/tang05505622334/article/details/78638839


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM