У меня есть файл с предложениями, как это: returnCodeMsgDE=Es gibt nicht genug Arbeitsspeicher um das Programm auszuf\u00FChren. Zurzeit gibt es %d frei MB zu verf\u00FCgung
печати Юникода строки в C
Я хочу, чтобы прочитать эти предложения, записать их в переменную, которая будет передан MessageBox, так что я могу записать их в диалоговом окне , где символы юникода должны быть заменены их эквивалентными символами, эквивалентными юникоду.
Но диалоговые окна, которые я получаю, имеют следующий текст: «auszuf \ u00FChren».
Это часть моего кода, где такая ситуация случается:
_TCHAR* errorMsg = NULL;
_TCHAR* returnCodeMsgDE2 = readPropertiesFile(_T_ECLIPSE("returnDE")); //here I get this string: L"returnCodeMsgDE=Es gibt nicht genug Arbeitsspeicher um das Programm auszuf\\u00FChren. Zurzeit gibt es %d frei MB zu verf\\u00FCgung"
_stprintf(errorMsg, _T_ECLIPSE("%s"), returnCodeMsgDE2, _freeMemory()); //freememory() returns an Integer.
MessageBox(topWindow, errorMsg, title, MB_OK);
Я не знаю, как сделать свою программу правильно представляют символы Unicode, я пробовал много PRINTF и Scanf версии Юникода и никто из них не работает.
Я также попытался установить языковой стандарт.
Не могли бы вы мне помочь? В настоящий момент я полностью потерян.
Вы пробовали функции, объявленные в wchar.h? – JIghtuse
Сначала проверьте свой СТРОЙ-ТИП. TCHAR определяется как wchar_t в сборке Unicode, но как char в сборке без Unicode. Только wchar_t может корректно обрабатывать Unicode. – TerrenceSun