近期工作的那个模块,需要SQLITE3做一个日志,于是 使用string拼接了SQL插入命令。但是路径是有中文的。
问题:cmd下用sqlite3打开db文件,中文显示为???
第一次尝试解决,先百度,第一次百度结果是,将cmd设置为utf-8。
然后chcp 65001,cmd设置为65001代码页后,不吃中文了。把文件全部放到了英文路径下,然后打开,结果发现还他么是???
第二次尝试解决,(过了一段时间,写了些编码的博客,哈哈哈不会就写出来让比人看,我是有多坑)
在c++ club群里,跟大佬问了下,他说sqlite3吃utf-8,如果我实在想用gbk可以改源码=,=
今天百度了下,然后代码是这样的
setlocale(LC_ALL,"CHS"); //注意不用他,显示也是不认识的字符,除非你之前设置过。shit
TCHAR hh[512] = {0};
mbstowcs(hh, strSql.c_str(), sizeof(hh));
char tt[1024] = { 0 };
int ret =WideCharToMultiByte(CP_UTF8, 0,hh, -1, tt, sizeof(tt),NULL,NULL);
int nRes = sqlite3_exec(m_p