我正在开发一个C++程序在VS 2012年。我的程序需要支持几种不同的语言,所以我使用的是UTF-16。当我在调试时将鼠标悬停在字符串上时,Visual将显示字符串的内容。不幸的是,当该字符串不是英文时,显示是胡言乱语。下面是它看起来的一个例子:
L"×××× ×ª××ר ××× ×× ××§× ×¢×× ××× ×ר×× ××¨× ×ש×××× ××תר"
调试时是否有任何方法使VS正确显示字符串?
谢谢。
发布于 2014-01-07 08:48:35
事实证明,我的问题是,我没有在二进制模式下打开文件,这就是字符串被搞砸的原因。您应该打开这样的二进制文件:
std::wifstream in(fileName,std::ios::binary);
in.imbue(std::locale(in.getloc(),
new std::codecvt_utf16<wchar_t, 0x10ffff, std::consume_header>));
https://stackoverflow.com/questions/20960182
复制