inline WString l2w(const char* localstr, size_t len) { WString result; result.resize(len); size_t count = mbstowcs(&result[0], localstr, len); AX_ASSERT(count <= len); result.resize(count); return result; }
inline WString u2w(const char* utf8str, size_t len) { WString result; result.resize(len); if (sizeof(wchar_t) == sizeof(UTF16)) { const UTF8* srcstart = (UTF8*)&utf8str[0]; const UTF8* srcend = srcstart + len; UTF16* dststart = (UTF16*)&result[0]; UTF16* dstend = dststart + len; ConversionResult cr = ConvertUTF8toUTF16(&srcstart, srcend, &dststart, dstend, strictConversion); result.resize(dststart - (UTF16*)&result[0]); } return result; }
WString l2w(const String& lstr) { return l2w(lstr.c_str(), lstr.size()); #if 0 size_t len = lstr.size(); WString result; result.resize(len); size_t count = mbstowcs(&result[0], &lstr[0], len); AX_ASSERT(count <= len); result.resize(count); return result; #endif }
WString l2w(const char* localstr) { return l2w(localstr, strlen(localstr)); #if 0 size_t len = strlen(localstr); WString result; result.resize(len); size_t count = mbstowcs(&result[0], localstr, len); AX_ASSERT(count <= len); result.resize(count); return result; #endif }
WString u2w(const String& utf8str) { return u2w(utf8str.c_str(), utf8str.size()); #if 0 size_t len = utf8str.size(); WString result; result.resize(len); if (sizeof(wchar_t) == sizeof(UTF16)) { const UTF8* srcstart = (UTF8*)&utf8str[0]; const UTF8* srcend = srcstart + len; UTF16* dststart = (UTF16*)&result[0]; UTF16* dstend = dststart + len; ConversionResult cr = ConvertUTF8toUTF16(&srcstart, srcend, &dststart, dstend, strictConversion); result.resize(dststart - (UTF16*)&result[0]); } return result; #endif }