设置 数据库连接池的字符编码与数据库的字符编码一致
我的是utf8mb4
// 设置字符集为 utf8mb4,以确保结果编码正确
con->setClientOption("characterSetResults", (void)"utf8mb4");
con->setClientOption("characterSetClient", (void)"utf8mb4");
con->setClientOption("characterSetConnection", (void*)"utf8mb4");
然后从数据库中读取出的数据在windows控制台显示依旧乱码,因为:
在 C++ 中,如果您在控制台中输出中文字符,确保控制台的编码支持 UTF-8。
在某些 Windows 系统上,控制台默认使用的是 GBK 编码,这可能导致 UTF-8 编码的字符出现乱码。
可以尝试以下方法:
在程序开始时设置控制台编码(Windows):
cpp
#include <windows.h>
// 设置控制台输出为 UTF-8
SetConsoleOutputCP(CP_UTF8);
点击查看代码