如问题所述,将 wstring 转换为 const char * 的合适模板函数是什么?我的程序完全是用 Unicode 编写的,但是,SQlite 的大部分功能都需要 const char *。
我在msdn上找到了这样做的方法,在这里:http://msdn.microsoft.com/en-us/library/ms235631%28v=vs.80%29.aspx , 其中 name 是一个字符串。
// Convert to a char*
size_t origsize = wcslen(name.c_str()) + 1;
const size_t newsize = 100;
size_t convertedChars = 0;
char nstring[newsize];
wcstombs_s(&convertedChars, nstring, origsize, name.c_str(), _TRUNCATE);
最佳答案
您应该使用 *16 sqlite 函数(例如 sqlite3_prepare16),您可以在其中提供 UTF-16(即 wstring)作为参数。不要忘记使用 2*wcslen 作为字符串的长度。如果您坚持使用 const char* 函数,则必须先转换为 UTF-8。
关于c++ - 为 SQlite 将 wstring 转换为 const char * 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4635046/