u16string rgx::string_to_ucs2(const std::string& str) {
    static wstring_convert<codecvt_utf8<char16_t, 0x10ffff, std::little_endian>, char16_t> myconv_little_endian;
    static wstring_convert<codecvt_utf8<char16_t>, char16_t> myconv_big_endian;
    if (isLittleEndien()) {
        return myconv_little_endian.from_bytes(str);
    } else {
        return myconv_big_endian.from_bytes(str);
    }
}
Beispiel #2
0
wstring
GetWString(const string& str)
{
    // NOTE(Wuxiang): http://en.cppreference.com/w/cpp/locale/codecvt_utf8_utf16
    using CodeOutput = wchar_t;
    using CodeConvert = codecvt_utf8_utf16<CodeOutput>;
    static wstring_convert<CodeConvert> sConverter;
    return sConverter.from_bytes(str);
}
Beispiel #3
0
u16string FSU8ToU16(const string& a_sString)
{
	static wstring_convert<codecvt_utf8_utf16<char16_t>, char16_t> c_cvt_u8_u16;
	return c_cvt_u8_u16.from_bytes(a_sString);
}
Beispiel #4
0
wstring FSAToW(const string& a_sString)
{
	static wstring_convert<codecvt<wchar_t, char, mbstate_t>> c_cvt_a(new codecvt<wchar_t, char, mbstate_t>(""));
	return c_cvt_a.from_bytes(a_sString);
}
Beispiel #5
0
wstring FSU8ToW(const string& a_sString)
{
	static wstring_convert<codecvt_utf8<wchar_t>> c_cvt_u8;
	return c_cvt_u8.from_bytes(a_sString);
}