From bfe84f06f2de966b68026f5b3f4212fd2ba783b6 Mon Sep 17 00:00:00 2001 From: Weiyi Wang Date: Sat, 22 Sep 2018 00:52:38 -0400 Subject: [PATCH] string_util: remove TString conversion for windows First of all they are foundamentally broken. As our convention is that std::string is always UTF-8, these functions assume that the multi-byte character version of TString (std::string) from windows is also in UTF-8, which is almost always wrong. We are not going to build multi-byte character build, and even if we do, this dirty work should be handled by frontend framework early. --- src/common/file_util.h | 2 +- src/common/string_util.h | 18 ------------------ 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/src/common/file_util.h b/src/common/file_util.h index 3d8fe6264..571503d2a 100644 --- a/src/common/file_util.h +++ b/src/common/file_util.h @@ -285,7 +285,7 @@ private: template void OpenFStream(T& fstream, const std::string& filename, std::ios_base::openmode openmode) { #ifdef _MSC_VER - fstream.open(Common::UTF8ToTStr(filename).c_str(), openmode); + fstream.open(Common::UTF8ToUTF16W(filename).c_str(), openmode); #else fstream.open(filename.c_str(), openmode); #endif diff --git a/src/common/string_util.h b/src/common/string_util.h index 78b558405..32bf6a19c 100644 --- a/src/common/string_util.h +++ b/src/common/string_util.h @@ -76,24 +76,6 @@ std::u16string UTF8ToUTF16(const std::string& input); std::string UTF16ToUTF8(const std::wstring& input); std::wstring UTF8ToUTF16W(const std::string& str); -#ifdef _UNICODE -inline std::string TStrToUTF8(const std::wstring& str) { - return UTF16ToUTF8(str); -} - -inline std::wstring UTF8ToTStr(const std::string& str) { - return UTF8ToUTF16W(str); -} -#else -inline std::string TStrToUTF8(const std::string& str) { - return str; -} - -inline std::string UTF8ToTStr(const std::string& str) { - return str; -} -#endif - #endif /**