VS2019一般的编码是UTF-8编码, win11操作系统的编码可能为GB2312,VS整个工程中使用的都是UTF-8编码,但是在系统内生成的其他文件夹的名字则是系统的编码
如何选择?
Qt 项目:优先用 QString 和 QByteArray(无缝集成 Qt API)。
纯 C++:用 std::string(兼容 STL)。
C 接口/底层:用 char*(但需谨慎内存管理)。
二进制数据:用 QByteArray 或 std::vector<uint8_t>。
常见问题
Q1:为什么 QString 不直接用 std::string?
答:QString 为 Qt 生态优化(如信号槽、Unicode 支持),而 std::string 是通用实现。
Q2:const char* 和 char* 的区别?
答:const char* 是只读的,char* 可修改(但需手动管理内存)。
Q3:中文乱码如何解决?
答:确保统一编码(如 UTF-8):
cpp
QString s = QString::fromUtf8(“你好”); // 显式指定编码
当从一个文本中读取一个字节流的时候要指定编码,如果不指定如果有中文的话乱码
出现乱码的根本原因,编码的内容和用的解码是不一致的,编码和解码用的字符集不一样