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相关的字符串转换做详细说明,比较可惜

为保存涉及相关字符不出现乱码,主要应该关注下图的三个环节:
img

template<
class InternT,
class ExternT,
class State

class codecvt; out: InternT转ExternT,State表示转换后的状态

utf-8 最大优势是保存文件,但其变长的特性,导致在程序处理中十分不便。windowns 程序中UTF-16的方式保存文字编码,而很多Linux系统的发布版均使直接用UTF-8作为系统中的编码。

附 参考链接

codecvt的使用说明

附,图片中的内容
文件保存编码 编译设置编码 输出(cout输出时)环境
源码文件 可执行程序 windonws cmd UTF-16
xxxx.cpp xxxx.exe linux shell UTF-8
上述三个环节是否一致,关系到输出时,是否乱码

posted @   小AT  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示