У меня возникла такая проблема, может кто знает как решить? Нужно читать, обрабатывать и выводить (в консоль и в файл) текст, в котором содержатся специальные символы, которых нет в кодировке ANSI, но есть в Unicode (пример таких символов: ᴖ ᴗ). С русскими буквами проблем нет, все выводится как надо, а вот со специальными символами — проблема. Не выводятся ни в файл, ни в консоль. Может кто-то сталкивался с такой проблемой. Заранее спасибо!
По умолчанию в консоли (в винде) и файлах используется какая-нибудь однобайтная кодировка. Например, cp1251. Она не содержит нужных вам символов, только русские. Посмотрите, в какой кодировке сохранён код программы (правильно понимаю, что в коде всё прекрасно видно?) и откройте файл с выводом в такой же. Как заставить виндовую консоль работать в юникоде, я не знаю, а линуксовая часто работает в нём по умолчанию.
Если речь о windows и visual c++ компиляторе, то можно глянуть на древнюю-древнюю статью и комментарии к ней. А вообще проблема слишком многогранна, нужно хотя бы знать откуда и в какой кодировке берется текст, а также операционные системы и компиляторы с которыми должно работать решение.
Система — Windows. Компилятор — visual c++. Данные берутся из текстового файла (*.txt). Файл сохранен в кодировке Unicode.
Я бы посоветовал немножко сначала разобраться в понятиях, чтобы не было терминологической путаницы в будущем. Unicode тоже, конечно, называют иногда кодировкой. Но Unicode — это по сути стандартизированное отображение логических символов на целые числа. То есть такая большая таблица, в которой каждому символу ставится в соответствие число. А есть еще конкретные реализации character encodings, которые кодируют эти числа из таблицы в битовое представление, фактически в другие числа. Цель этого кодирования обычно — уменьшить необходимый объем памяти при задании строк в среднем. Распространенные кодировки для Unicode — это UTF-8, UTF-16, etc
Для работы с юникодом на уровне С++ есть wchar_t, в stl есть соответственно wstring, wcout, etc (это если не трогать пока С++11). На уровне visual studio и Microsoft-specific нужно разобраться с макросами UNICODE, _UNICODE, _T, TCHAR, LPCTSTR и прочими.
Для работы с Unicode лучше использовать отдельную библиотеку, предназначенную для этого. Например, в glibmm и Qt есть соответствующие функции.