我正在 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)