2014-01-06 60 views
2

我正在VS 2012中開發一個C++程序。我的程序需要支持幾種不同的語言,因此我使用的是UTF-16。在調試時將鼠標懸停在字符串上時,Visual Studio會顯示字符串的內容。不幸的是,當該字符串不是英文時,顯示屏就是亂碼。下面是它的一個例子:在VS調試器中顯示UTF-16字符串

L"×××× ×ª××ר ××× ×× ××§× ×¢×× ××× ×ר×× ××¨× ×ש×××× ××תר" 

有什麼辦法讓VS在調試時正確顯示字符串嗎?

謝謝。

+0

嗯,不,這很好。在UTF-16操作系統上非常重要。完全不可能猜出你的問題可能出了什麼問題。 –

+0

我不確定我是否遵循,你是說這通常有效,但我必須搞砸了嗎?也許重要的是要注意我正在使用LTR和RTL語言的混合。 –

回答

0

原來我的問題是我沒有在二進制模式下打開文件,這就是爲什麼字符串被搞砸了。你應該打開這樣的二進制文件:

std::wifstream in(fileName,std::ios::binary); 
in.imbue(std::locale(in.getloc(), 
    new std::codecvt_utf16<wchar_t, 0x10ffff, std::consume_header>)); 
相關問題