utf 8 - 将 UTF16(Windows wchar_t) 转换为 UTF8 C++ 非英语字母损坏(韩语)
utf 8 - Converting UTF16(Windows wchar_t) to UTF8 in C++ Non-English letters corrupted(Korean)
我正在尝试制作一个多平台应用程序。在 Windows 应用商店应用程序 (winrt) 端,打开一个文件并以 Platform::String 格式读取其路径,该格式在 Windows 中为 wchar_t UTF16。
由于我的核心逻辑与平台无关,并且仅使用标准C++数据类型,因此我通过以下代码将路径转换为 UTF8 中的 std::string:
Platform::String^ copyPath = copy->Path;
std::wstring source(copyPath->Data());
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t >, wchar_t > convert;
std::string u8CopyPath = convert.to_bytes(source);
但是,当我在调试器中检查 u8CopyPath 时,它显示非英语字符的损坏字母。 据我所知,UTF-8 完全能够编码非英语语言,因为它可以为单个字母使用多个字节。转换中是否有损坏非英语字母的内容?
事实证明,这只是一个调试器的东西。一旦我把它写到一个文件并检查它,它就正确地打印出来了。
相关文章:
- C ++如何使用UTF8十六进制代码打印UTF8符号?
- C++MySQL连接器没有utf8
- 从/到 UTF-8/UTF-16 的转换需要(例如:utf8 -> 代码点,然后代码点到 utf16)或(例如:utf8 -> utf16)?
- C++和带有国家符号的文件路径(也许用 UTF8 编码)
- 'std::wstring_convert'尽可能多地转换(从 UTF8 文件读取块)
- 将utf16宽std::wstring转换为utf8窄std::string以获得罕见字符时出现问题
- python UnicodeDecodeError: 'utf8' codec 无法解码字节
- MSVC UTF8字符串编码使用了不正确的代码点
- 使用C++将越南语字符从ISO88591、UTF8、UTF16BE、UTF16LE和UTF16编码为十六进制,反之亦然
- 如何使 std::正则表达式匹配 Utf8
- 有没有非utf8字符这样的东西
- VS2019编译器将没有BOM文件的UTF8错误解释为ANSI
- Arduino在通过Serial读取utf8时表现奇怪
- 如何在utf8中获得代码点文字
- 在 C++ 中将 utf8 wstring 转换为窗口中的字符串
- 检查是否需要 utf8 转换并转换为 utf8
- 如何使用C++在Windows中输出和输入UTF8或UTF16 Unicode文本?
- C++ 检查 UTF8 字符串包含指定的字符
- 使用 iconv 进行 UTF8 转换的输出不正确
- tiny-utf8:以字符/代码点为单位获取偏移量