首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将utfcpp中的多个utf8符号(uint32_ts)存储为一个字符串?

如何将utfcpp中的多个utf8符号(uint32_ts)存储为一个字符串?
EN

Stack Overflow用户
提问于 2018-05-18 21:35:54
回答 2查看 152关注 0票数 0

使用utfcpp库,可以将utf8中编码的字符串('哈哈哈')拆分成几个符号(或符号(21704, 21704, 21704)),这些符号的行为类似于std::stringchar

在这种情况下,存储字符(‘uint32_t’)序列(作为‘字符串’)的最佳解决方案是什么?

例如,将(21704, 21704, 21704)放入vector<uint32_t>需要迭代“字符串比较”的向量,这比真正的std::string版本更像是slower

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-05-18 21:39:16

使用std::wstring或您自己的brew std::basic_string

这将允许您使用它们的运算符和函数来操作此类对象。

票数 1
EN

Stack Overflow用户

发布于 2018-05-18 22:01:32

现代版本的C++自带char16_tchar32_t。它们应该优先于uintxx_t类型,因为第24.2条字符特征char.traits要求为其定义char_traits的专门化:

本子款定义了表示字符特征的类的要求,并定义了类模板char_traits<charT>,以及满足这些要求的四种特殊化:char_traits<char>char_traits<char16_t>char_traits<char32_t>char_traits<wchar_t>

这甚至允许立即访问basic_string专门化: string.classes说: 24.3个字符串类

<string>定义了basic_string类模板,用于操作类字符对象的可变长度序列和四个类型定义名stringu16stringu32stringwstring,它们分别将特殊化命名为basic_string<char>basic_string<char16_t>basic_string<char32_t>basic_string<wchar_t>

不幸的是,当涉及到直接io时,basic_stream<char32_t>没有这样的专门化,但是UTF8语言环境应该有char32_tchar之间的转换器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50412549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档