C++新特性读书笔记
《现代C++语言核心新特性解析》读书笔记
第一章 新基础类型
需要重点关注的是新特性中增加了对UTF-8、UTF-16、UTF-32编码的处理(以C++20库为准,中间的特性存在变化),分别对应的字符类型char8_t、char16_t、char32_t,定义字符或字符串时,前缀分别是:u8、u、U,c11中转换时使用函数mbrtoc8\mbrtoc16\mbrtoc32,c8rtomb\c16rtomb\c32rtomb。但此书中未对char32_t相关的字符串转换做详细说明,比较可惜
为保存涉及相关字符不出现乱码,主要应该关注下图的三个环节:
template<
class InternT,
class ExternT,
class State
class codecvt; out: InternT转ExternT,State表示转换后的状态
utf-8 最大优势是保存文件,但其变长的特性,导致在程序处理中十分不便。windowns 程序中UTF-16的方式保存文字编码,而很多Linux系统的发布版均使直接用UTF-8作为系统中的编码。
附 参考链接
附,图片中的内容
文件保存编码 编译设置编码 输出(cout输出时)环境
源码文件 可执行程序 windonws cmd UTF-16
xxxx.cpp xxxx.exe linux shell UTF-8
上述三个环节是否一致,关系到输出时,是否乱码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通