1

正如问题所说,将 wstring 转换为 const char * 的合适模板函数是什么?我的程序完全用 Unicode 编写,但是,SQlite 的大多数功能都需要 const char *。

我在这里找到了在 msdn 上执行此操作的方法:http: //msdn.microsoft.com/en-us/library/ms235631%28v=vs.80%29.aspx,其中名称是 wstring。

// 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);
4

1 回答 1

2

您应该使用 *16 sqlite 函数(例如 sqlite3_prepare16),其中 you4 可以将 UTF-16(即 wstring)作为参数。不要忘记使用 2*wcslen 作为字符串的长度。如果您坚持使用 const char* 函数,则必须先转换为 UTF-8。

于 2011-01-08T18:49:42.923 回答