diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2016-09-16 14:46:11 -0400 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2016-09-16 14:46:11 -0400 |
commit | f0d958c747cfc42dd831eb2f088e963475c0ed54 (patch) | |
tree | 39cac193f0b58c9d95c3774fb4964259975e840b /src/mongo/base | |
parent | 3174e2d67d077fa8362c3f1200024d69773344fd (diff) | |
download | mongo-f0d958c747cfc42dd831eb2f088e963475c0ed54.tar.gz |
SERVER-16725 Incorrect character conversion between UTF-8 and UTF-16
Diffstat (limited to 'src/mongo/base')
-rw-r--r-- | src/mongo/base/validate_locale.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mongo/base/validate_locale.cpp b/src/mongo/base/validate_locale.cpp index 5a4320c34c5..ffb7190c804 100644 --- a/src/mongo/base/validate_locale.cpp +++ b/src/mongo/base/validate_locale.cpp @@ -27,7 +27,9 @@ #include <stdexcept> -#include <boost/filesystem/operations.hpp> +#include <boost/filesystem/path.hpp> +#include <codecvt> +#include <locale> #include "mongo/base/init.h" @@ -46,6 +48,13 @@ MONGO_INITIALIZER_GENERAL(ValidateLocale, MONGO_NO_PREREQUISITES, MONGO_DEFAULT_ #endif ); } + +#ifdef _WIN32 + // Make boost filesystem treat all strings as UTF-8 encoded instead of CP_ACP. + std::locale loc(std::locale(""), new std::codecvt_utf8_utf16<wchar_t>); + boost::filesystem::path::imbue(loc); +#endif + return Status::OK(); } |