编码总结如下

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

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

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

相关推荐
Larry_Yanan9 分钟前
QML学习笔记(四十六)QML与C++交互:Q_PROPERTY宏映射
c++·笔记·qt·学习·ui·交互
再睡一夏就好23 分钟前
【C++闯关笔记】深究继承
java·数据结构·c++·stl·学习笔记
mjhcsp1 小时前
C++ char 类型深度解析:字符与字节的双重身份
开发语言·c++·char
jikiecui2 小时前
信奥崔老师:实数型: float、double
c++·算法
Source.Liu2 小时前
【CMakeLists.txt】CMake 编译定义带值参数详解
c++·qt·librecad
程序猿编码2 小时前
轻量级却实用:sigtrace 如何靠 ptrace 实现 Linux 信号的捕获与阻断(C/C++代码实现)
linux·c语言·c++·信号·捕获·ptrace
曦樂~2 小时前
【Qt】TCP连接--客户端和服务器
服务器·网络·c++·qt·tcp/ip
WoodWall2 小时前
WebServer 02 Reactor模式
c++·后端
WaWaJie_Ngen2 小时前
【OpenGL】模板测试(StencilTest)
c++·算法·游戏·游戏引擎·游戏程序·图形渲染
滴_咕噜咕噜2 小时前
【MFC】数据库操作:数据库动态生成
数据库·c++·mfc