mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-11-27 05:04:01 +08:00
helper function to convert between utf-8 and utf-16
This commit is contained in:
parent
efc062f6be
commit
00f1268e31
@ -1,9 +1,11 @@
|
|||||||
#include "common_helpers/common_helpers.hpp"
|
#include "common_helpers/common_helpers.hpp"
|
||||||
|
#include "utfcpp/utf8.h"
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <cwchar>
|
#include <cwchar>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
#include <random>
|
#include <random>
|
||||||
|
#include <iterator>
|
||||||
|
|
||||||
// for gmtime_s()
|
// for gmtime_s()
|
||||||
#define __STDC_WANT_LIB_EXT1__ 1
|
#define __STDC_WANT_LIB_EXT1__ 1
|
||||||
@ -463,3 +465,37 @@ std::string common_helpers::get_utc_time()
|
|||||||
}
|
}
|
||||||
return time_str;
|
return time_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::wstring common_helpers::to_wstr(std::string_view str)
|
||||||
|
{
|
||||||
|
// test a path like this: "C:\test\命定奇谭ğğğğğÜÜÜÜ"
|
||||||
|
if (str.empty() || !utf8::is_valid(str)) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
std::wstring wstr{};
|
||||||
|
utf8::utf8to16(str.begin(), str.end(), std::back_inserter(wstr));
|
||||||
|
return wstr;
|
||||||
|
}
|
||||||
|
catch (...) {}
|
||||||
|
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string common_helpers::to_str(std::wstring_view wstr)
|
||||||
|
{
|
||||||
|
// test a path like this: "C:\test\命定奇谭ğğğğğÜÜÜÜ"
|
||||||
|
if (wstr.empty()) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
std::string str{};
|
||||||
|
utf8::utf16to8(wstr.begin(), wstr.end(), std::back_inserter(str));
|
||||||
|
return str;
|
||||||
|
} catch(...) { }
|
||||||
|
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
@ -107,4 +107,7 @@ size_t rand_number(size_t max);
|
|||||||
|
|
||||||
std::string get_utc_time();
|
std::string get_utc_time();
|
||||||
|
|
||||||
|
std::wstring to_wstr(std::string_view str);
|
||||||
|
std::string to_str(std::wstring_view wstr);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user