У нас есть система комментариев, встроенная в наш движок, которая позволяет программистам оставлять комментарии для различных открытых переменных/объектов, которые затем используются внешним интерфейсом GUI для всплывающих подсказок и справки.
Недавно некоторые всплывающие подсказки начали давать сбой, и после того, как я потратил много времени, я отследил его до символа: ’
, который, если я не ошибаюсь, является символом Юникода и недоступен в ASCII.
Принимая во внимание этот ответ, я предположил, что wstring
решит проблему. Прежде чем вносить изменения в более крупный проект, я создал тестовый проект, чтобы посмотреть, решит ли wstring
проблему. Хотя проект не аварийно завершает работу, поведение wstring
отличается от ожидаемого.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string someString = "successive attack that DOESN’T result";
wstring someWString = L"successive attack that DOESN’T result";
cout << someString << endl;
wcout << someWString << endl;
return 0;
}
//Console Output//
successive attack that DOESNÆT result
successive attack that DOESNPress any key to continue . . .
Я прочитал эту статью некоторое время назад и подумал, что понял проблемы, связанные с наборами символов. , но это явно не так. Я был бы признателен за решение этой проблемы, а также за хорошее объяснение того, что происходит и как избежать подобных проблем в будущем.
Use Multi-byte Character Set
, так иUse Unicode Character Set
без разницы в выводе. - person Samaursa   schedule 10.02.2012wstring
, поэтому я подумал, что попробую меньший проект, прежде чем вносить изменения и обнаруживать, что они не решают проблему. - person Samaursa   schedule 10.02.2012