removed extra null character in Utf8ToWide and WideToUtf8

pull/2633/head
Ryan McCampbell 2019-08-19 12:00:01 -04:00
parent 6c65b5b549
commit 0685e415ad
1 changed files with 6 additions and 4 deletions

View File

@ -64,16 +64,18 @@ using namespace Assimp;
#ifdef _WIN32 #ifdef _WIN32
static std::wstring Utf8ToWide(const char* in) static std::wstring Utf8ToWide(const char* in)
{ {
int size = MultiByteToWideChar(CP_UTF8, 0, in, -1, nullptr, 0); size_t size = MultiByteToWideChar(CP_UTF8, 0, in, -1, nullptr, 0);
std::wstring out(size, L'\0'); // size includes terminating null; std::wstring adds null automatically
std::wstring out(size - 1, L'\0');
MultiByteToWideChar(CP_UTF8, 0, in, -1, &out[0], size); MultiByteToWideChar(CP_UTF8, 0, in, -1, &out[0], size);
return out; return out;
} }
static std::string WideToUtf8(const wchar_t* in) static std::string WideToUtf8(const wchar_t* in)
{ {
int size = WideCharToMultiByte(CP_UTF8, 0, in, -1, nullptr, 0, nullptr, nullptr); size_t size = WideCharToMultiByte(CP_UTF8, 0, in, -1, nullptr, 0, nullptr, nullptr);
std::string out(size, '\0'); // size includes terminating null; std::string adds null automatically
std::string out(size - 1, '\0');
WideCharToMultiByte(CP_UTF8, 0, in, -1, &out[0], size, nullptr, nullptr); WideCharToMultiByte(CP_UTF8, 0, in, -1, &out[0], size, nullptr, nullptr);
return out; return out;
} }