Sqlite c++操作数据库中文乱码

char* Utf2Gb(const char* utf8)

{

int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);

wchar_t* wstr = new wchar_t[len + 1];

memset(wstr, 0, len + 1);

MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wstr, len);

len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL);

char* str = new char[len + 1];

memset(str, 0, len + 1);

WideCharToMultiByte(CP_ACP, 0, wstr, -1, str, len, NULL, NULL);

if (wstr) delete[] wstr;

return str;

}

//GB2312到UTF-8的转换

char* GB2Utf(const char* gb2312)

{

int len = MultiByteToWideChar(CP_ACP, 0, gb2312, -1, NULL, 0);

wchar_t* wstr = new wchar_t[len + 1];

memset(wstr, 0, len + 1);

MultiByteToWideChar(CP_ACP, 0, gb2312, -1, wstr, len);

len = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL);

char* str = new char[len + 1];

memset(str, 0, len + 1);

WideCharToMultiByte(CP_UTF8, 0, wstr, -1, str, len, NULL, NULL);

if (wstr) delete[] wstr;

return str;

}

相关推荐
山茶花开时。5 分钟前
[Oracle] NVL()函数
数据库·oracle
水木石画室8 分钟前
Redis的分布式序列号生成器原理
数据库·redis·分布式
Dream it possible!23 分钟前
LeetCode 面试经典 150_数组/字符串_O(1)时间插入、删除和获取随机元素(12_380_C++_中等)(哈希表)
c++·leetcode·面试·哈希表
❀͜͡傀儡师30 分钟前
达梦数据库日常运维命令
运维·数据库
喵王叭42 分钟前
【大模型实战】向量数据库实战 - Chroma & Milvus
数据库·人工智能·langchain
云台0952 小时前
HIVE 窗口函数处理重复数据
数据库
PaperFly2 小时前
📘 C++ 中成员函数与普通函数的地址是否唯一?
c++
得物技术2 小时前
Valkey 单点性能比肩 Redis 集群了?Valkey8.0 新特性分析|得物技术
大数据·数据库·redis
倾听醉梦语2 小时前
Redis作为MySQL缓存的完整指南:从原理到实战
数据库·redis·mysql·缓存
kebeiovo2 小时前
C++实现线程池(3)缓存线程池
开发语言·c++