Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
90 / 17 / 4
Регистрация: 09.06.2010
Сообщений: 100

Почему программы не видят кодировку cp866?

09.05.2011, 23:26. Показов 3848. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Началось с того, что я попал на ирц чат к разрабам CodeLite с просьбой разобраться с русскими буквами в консоли. Там сказали, что программы использую только те кодировки, которые есть в системе. Тогда я сравнил списки кодировок в CodeLite и Code::Blocks, они оказались совершенно одинаковые. Стал копать WinXP.
Сначала проверил файл C:\WINDOWS\system32\c_866.nls, есть такой, и куча других.
Потом полез в панель управления> язык и рег. стандарты> дополнительно> кодовые страницы таблиц преобразования. Там интересуют 1251, 20866(рус кои8), 65001 (UTF8), 866. Вроде как они не просто есть и выделены, но и отображаются серым цветом (нельзя выключить галочку). Получается что кодировка есть, она включена, но программы её не видят.

Просьба к профессионалам: Не могли бы вы посмотреть исходные коды вышеперечисленных программ и проверить, почему они не видят cp866?

Добавлено через 12 часов 40 минут
.. а потом разрабы сказали что коделайт использует фунуции wxFontMapper::GetSupportedEncodingsCount и wxFontMapper::GetEncoding. Кодеблокс кстати тоже. Поэтому у них абсолютно одинаковые списки.
http://docs.wxwidgets.org/2.8/wx_wxfontmapper.html - тут про эти функции, но для меня ничего не понятно. Получается что нужно недоработку искать в wx а не в программах.
Тогда нужно попробовать написать код, который просто выведет все доступные кодировки. Поможете?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2011, 23:26
Ответы с готовыми решениями:

Как укаазать кодировку CP866 при выводе в XML?
как вывести в кодировке не UTF-8 таблицу, а в CP866?? не могу разобраться в этом... именно даже не просто вывод, а перекодированный...

Почему ПК не видят других ПК в сети?
к 16-разъёмному концентратору подключен 8-разъемный, а к 8 разъемному ещё один 8-разьемный. От первых 2ух концентраторов - компы работают(и...

Почему хосты не видят друг-друга?
Доброго времени суток! Помогите пожалуйста разобраться со следующим вопросами: Чисто эмпирически обнаружил следующее: если к...

5
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
10.05.2011, 02:43
А для чего нужна эта кодировка?
Для русских букв в консоли можно использовать эту функцию:
CharToOemBuff()
У меня кстати была похожая проблема, в кодировке 866 шрифт кривой был, проблема решилась сменой шрифта
0
90 / 17 / 4
Регистрация: 09.06.2010
Сообщений: 100
10.05.2011, 21:41  [ТС]
Такс.. результ:

Добавлено через 16 минут
Такс.. результ:
C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    system ("chcp 1251"); // переходим на кодировку 1251
    printf("Всем привет!\n");
    return 0;
}
В обычном режиме (с пиксельным шрифтом) выходит чертовщина. В заголовке консоли ПКМ, свойства, шрифт, Lucida Console, OK, сохранить свойства для других окон с тем же именем. Вот результат:
http://s1.ipicture.ru/uploads/... QVGCKV.png
Единственный недостаток - в самой первой строчке будет сообщение о том, что изменена кодировка, но это не критично.
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
10.05.2011, 22:37
мой пост по всей видимости проигнорирован)
0
90 / 17 / 4
Регистрация: 09.06.2010
Сообщений: 100
10.05.2011, 23:07  [ТС]
Как раз из поста узнал, что шрифт можно сменить.

Но всё таки тема не просто добиться рус букв, но разобраться, почему проги не видят 866?
1. wxFontMapper::GetAllEncodingNames - возвращает все названия данной кодировки.
2. ..GetSupportedEncodingsCount вместе с ..GetEncoding могут использоваться для получения всех поддерживаемых кодировок.
Вроде так понял. Но хочется разобраться, видят ли эти функции cp866?
(может тему в wx нужно перенести?)
0
90 / 17 / 4
Регистрация: 09.06.2010
Сообщений: 100
17.07.2012, 23:12  [ТС]
Исправлено. Кодировка замечательно работает. Для консоли выбираем cp866, для работы с текст файлами выбираем cp1251, а то неразбериха будет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2012, 23:12
Помогаю со студенческими работами здесь

Почему рейтинги не видят переходы с adwords
Почему рейтинги (liveinternet, rambler, bigmir и т.д.) не видят переходы с google adwords? Или просто не учитывают?

Почему настройки игры не видят вторую видеокарту?
Купил ноутбук Lenovo b590 В нем две видеокарты 1.GT 720m 2.Intel graphics 4000 Но столкнулся с одной проблемой,в лаунчере некоторых игр...

Программы не видят сканер
Всем привет, имеется сканер epson perfection 1260, который работал на старом компьютере с WinXP. Но после того как поставили новый...

Программы не видят датчики
Дорого времени суток. Не отображаются датчики температуры, напряжения и тому подобное. в АИДЕ вкладка датчики пустая. только температура...

Программы не видят framework
При попытке запуска или установки программ всплывают подобные сообщения. Но при этом установлены все версии


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru