|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.12.2013, 21:03 | #1 |
Изучающий C и ASM
Пользователь
Регистрация: 25.05.2012
Сообщений: 89
|
Смена активного шрифта в консоли
Всех приветствую! Во время программирования консольной программы встала неприятная проблема:
На моем домашнем компьютере стоит немецкий интрефейс и соответственно по умолчанию везде немецкая локаль для не юникодных программ. Соответственно, в консоли нет поддержки русского. Сменить временно локаль можно, но это не выход для постоянной работы Всякие SetConsoleCP, chcp и AppLocale затыкаются, т.к. в реестре прописана 850 кодовая страница, которая знать не знает про русские символы. Шрифт загружается соответствующий (без русских символов). Что можно сделать? P.S. SetConsoleFont вроде как может переключать шрифт, но она недокументирована Последний раз редактировалось Berlioz; 28.12.2013 в 22:14. Причина: Уточнение кодовой страницы |
28.12.2013, 22:44 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ха!... Зачетная проблема )
Я когда то столкнулся с похожим. 1) Попробовал в консоли юникод, вроде прокатило но были свои гнилушки 2) Тупо переделал в оконку с Мемо полем. И на сим проблема закрылась (Оконку раскрасил под цвет консоли - юзера тупо ниче не заметили )
I'm learning to live...
|
29.12.2013, 12:33 | #3 | |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,831
|
Цитата:
Ладно, пусть Far выводит в консоль через WriteConsoleW, но и в обычной программе всегда есть возможность выставить SetConsoleOutputCP(CP_UTF8), после чего выводить текст в UTF-8. Работает, начиная с Windows XP. Кроме того, как мне кажется, можно выставить и SetConsoleOutputCP(866) или SetConsoleOutputCP(1251) даже в немецкой Windows, только шрифт консоли установить Lucida Console, как на скриншоте. Код:
В разработке: воспроизводственный контур ИТ
|
|
29.12.2013, 13:49 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
29.12.2013, 16:57 | #5 |
Изучающий C и ASM
Пользователь
Регистрация: 25.05.2012
Сообщений: 89
|
Хорошо! С этим разобрался. Если ставить вручную, то все нормально.
Вопрос по ходу: как Far меняет шрифт с точечного на Lucida? Читал, что это недокументированная функция SetConsoleFont, но так и не понял. UPD: Экспериментально выяснил, что SetConsoleFont(GetStdHandle(STD_OUT PUT_HANDLE),6) в Windows 7 ставит Lucida 12 Последний раз редактировалось Berlioz; 29.12.2013 в 17:04. |
29.12.2013, 17:12 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
29.12.2013, 17:35 | #7 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,831
|
Far никак не меняет, это я на всех своих системах глобально меняю, потому что часто работаю с консолью, и мне нужен Юникод. У консольной программы в ярлыке вроде задать можно.
В разработке: воспроизводственный контур ИТ
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Смена шрифта | Станислав Д | C# (си шарп) | 1 | 25.12.2013 10:38 |
Смена шрифта | Ekzamenator | Помощь студентам | 3 | 15.04.2011 17:45 |
Смена стиля шрифта | Pein95 | Общие вопросы Delphi | 3 | 01.03.2011 15:05 |
Смена цвета фона и шрифта в консоли | Hemul | Visual C++ | 3 | 27.01.2011 16:03 |
Поиск активного окна | Arigato | Win Api | 5 | 22.11.2008 18:32 |