编码总结如下

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("你好"); // 显式指定编码

当从一个文本中读取一个字节流的时候要指定编码,如果不指定如果有中文的话乱码

出现乱码的根本原因,编码的内容和用的解码是不一致的,编码和解码用的字符集不一样

相关推荐
2401_8414956411 分钟前
【数据结构】红黑树的基本操作
java·数据结构·c++·python·算法·红黑树·二叉搜索树
liu****1 小时前
负载均衡式的在线OJ项目编写(六)
运维·c++·负载均衡·个人开发
青草地溪水旁1 小时前
设计模式(C++)详解——迭代器模式(3)
c++·设计模式·迭代器模式
奔跑吧邓邓子2 小时前
【C++实战㊺】解锁C++代理模式:从理论到实战的深度剖析
c++·实战·代理模式
杜子不疼.2 小时前
【C++】玩转模板:进阶之路
java·开发语言·c++
夜晚中的人海2 小时前
【C++】异常介绍
android·java·c++
m0_552200822 小时前
《UE5_C++多人TPS完整教程》学习笔记60 ——《P61 开火蒙太奇(Fire Montage)》
c++·游戏·ue5
charlie1145141912 小时前
精读C++20设计模式——行为型设计模式:迭代器模式
c++·学习·设计模式·迭代器模式·c++20
小欣加油2 小时前
leetcode 1863 找出所有子集的异或总和再求和
c++·算法·leetcode·职场和发展·深度优先
00后程序员张4 小时前
从零构建 gRPC 跨语言通信:C++ 服务端与
开发语言·c++