您好我有一个UTF-8编码的字符串,并尝试插入到firebird数据库中。插入成功就像UTF-8字符串一样。
我试图将UTF-8字符串作为wstring(下面的转换方法)发送,我看到我的SQLExecute语句崩溃了我的应用程序。
for(int i=0;i<len;i++)
{
sC = pBuf[i];
dC = sC;
nString[i]= dChar;
}
其中pB is const char *
sC is unsigned char
dC is wchar_t
nString is wstring
。
以下是失败的字符串:My Stringß
(UTF-8)
看起来像My StringÃ
,但在调试器中还有一个字符159L''。
现在我想知道为什么它不会在UTF-8上崩溃而且在UTF-8的wstring上崩溃。有什么不同?
Related question: Firebird crashes on UTF8 string converted to wstring