wstring utf8Towstring(const char *s,int len) {
int len0 = len;
const char *s0 = s;
if (len ==0) len = strlen(s);
wstring res;
while (len >0) {
wchar_t w;
int j = mbrtowc(&w,s,len);
if (j > 0) {
s += j;
len -= j;
res += w; // <- RIGHT HERE!
} else {
printf("utf8Towstring: decoding error! (error:%d)\n",j); puts((char*)s0);
// It's not UTF-8, it's extended ASCII.
return extentedAsciiTowstring(s0,len0);
}
}
return res;
}