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