在 VS 调试器中显示 UTF-16 字符串
Displaying UTF-16 strings in VS debugger
>我正在用VS 2012开发一个C++程序。我的程序需要支持几种不同的语言,所以我使用的是 UTF-16。当我在调试时将鼠标悬停在字符串上时,Visual Studio 会显示字符串的内容。不幸的是,当该字符串不是英语时,显示是胡言乱语。下面是它的外观示例:
L"×××× ×ª××ר ××× ×× ××§× ×¢×× ××× ×ר×× ××¨× ×ש×××× ××תר"
有没有办法让VS在调试时正确显示字符串?
谢谢。
事实证明,我的问题是我没有以二进制模式打开文件,这就是字符串被搞砸的原因。你应该像这样打开二进制文件:
std::wifstream in(fileName,std::ios::binary);
in.imbue(std::locale(in.getloc(),
new std::codecvt_utf16<wchar_t, 0x10ffff, std::consume_header>));
相关文章:
- 将C++ std::string 转换为 UTF-16-LE 编码的字符串
- 从/到 UTF-8/UTF-16 的转换需要(例如:utf8 -> 代码点,然后代码点到 utf16)或(例如:utf8 -> utf16)?
- 通过分隔符分隔包含 UTF-16 BE 文本的uint8_t数组
- 如何从Little Endian UTF-16编码字节中获取C++std::string
- C++ UTF-8/ASCII to UTF-16 in MFC
- 如何C++ WCOUT UTF-16 编码的字符数组?
- 在这种情况下,UTF-16 和 UTF-32 的 BOM 是强制性的
- 查找十六进制字符串是 utf-8 或 utf-16
- 如何在C 17中读取UTF-16文本文件
- 在 Linux 中将 UTF-32 宽字符转换为 UTF-16 宽字符以获取补充平面字符
- C 14:UTF-8/UTF-16与本机字符编码之间的转换
- 如何将UTF-16中的字符串转换为C 中的UTF-8
- 在 VS 调试器中显示 UTF-16 字符串
- 在没有外部库的情况下将 utf-16 文本文件正确读取到字符串中
- 将 ASCII 字符串转换为 UTF-16,然后再将它们传递给 Windows API 函数
- 将wchar_t*转换为UTF-16字符串
- C++将UTF-8字符串作为UTF-16输出到std::cout
- 如何使用sqlite3_mprintf()与UTF-16字符串
- 从char*创建UTF-16字符串
- 使用什么来存储Unicode (UTF-16)字符串?(c++ 11)