本文作者原创,首发在本博客;CSDN 上的同名文章已标注为转载并回链到本页:https://blog.csdn.net/qq_30220519/article/details/140217117
icu 编解码数据:
extern const UConverterSharedData
_MBCSData, _Latin1Data,
_UTF8Data, _UTF16BEData, _UTF16LEData, _UTF32BEData, _UTF32LEData,
_ISO2022Data,
_LMBCSData1,_LMBCSData2, _LMBCSData3, _LMBCSData4, _LMBCSData5, _LMBCSData6,
_LMBCSData8,_LMBCSData11,_LMBCSData16,_LMBCSData17,_LMBCSData18,_LMBCSData19,
_HZData,_ISCIIData, _SCSUData, _ASCIIData,
_UTF7Data, _Bocu1Data, _UTF16Data, _UTF32Data, _CESU8Data, _IMAPData, _CompoundTextData;
U_CDECL_END
Code point 代码点 Byte 1 Byte 2 Byte 3 Byte 4
U+ 0000 .. 007F 0xxxxxxx
U+ 0080 .. 07FF 110xxxxx 10xxxxxx
U+ 0800 .. FFFF 1110xxxx 10xxxxxx 10xxxxxx
U+ 10000 .. 10FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
可变长度编码
🚵🏻♀️ is U+1F6B5 + U+1F3FB + U+200D + U+2640 + U+FE0F
🤦🏼♂️ 由 5 个代码点 ( U+1F926 U+1F3FB U+200D U+2642 U+FE0F )
组成的事实仅仅是实现细节。它不应该被拆开,它不应该被计为多个字符,文本光标不应该位于其中,它不应该被部分选择
关键代码
1 | std::size_t sequence_length(char8_t lead_byte) |
C++ 标准库
1 |
|
参考
utfcpp-3.2.1.tar.gz · src-openEuler/utf8cpp - Gitee.com
GitHub - nemtrif/utfcpp: UTF-8 with C++ in a Portable Way
GitHub - nemtrif/utfcpp20: Unicode encodings with C++20
创作不易,小小的支持一下吧!

