小编das*_*ird的帖子

如何在 C++11 中将 std::string 转换为 std::u32string?

我正在 C++11 中使用 Unicode,现在无法将 std::string 转换为 std::u32string。

\n\n

我的代码如下:

\n\n
#include <iostream>\n#include <string>\n#include <locale>\n#include "unicode/unistr.h"\n#include "unicode/ustream.h"\n\nint main()\n{\n    constexpr char locale_name[] = "";\n    setlocale( LC_ALL, locale_name );\n    std::locale::global(std::locale(locale_name));\n    std::ios_base::sync_with_stdio(false);\n    std::wcin.imbue(std::locale());\n    std::wcout.imbue(std::locale());\n\n    std::string str="hello\xe2\x98\xba";\n\n    std::u32string s(str.begin(),str.end());\n\n    icu::UnicodeString ustr = icu::UnicodeString::fromUTF32(reinterpret_cast<const UChar32 *>(s.c_str()), s.size());\n    std::cout << "Unicode string is: " << ustr << std::endl;\n\n    std::cout << "Size of unicode string = " << ustr.countChar32() << std::endl;\n\n    std::cout << "Individual characters of the string are:" << std::endl;\n    for(int i=0; i < ustr.countChar32(); i++)\n      std::cout …
Run Code Online (Sandbox Code Playgroud)

c++ unicode non-ascii-characters icu c++11

0
推荐指数
1
解决办法
2718
查看次数

标签 统计

c++ ×1

c++11 ×1

icu ×1

non-ascii-characters ×1

unicode ×1