Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Вниз

Консольное приложение - косой вывод кириллицы на экран   Найти похожие ветки 

 
Вольный Стрелок ©   (2005-07-13 12:50) [0]

Время от времени возвращаюсь к этой проблеме, но так и не догоняю, что делать.
Пробовал SetConsoleOutputCP - переключает вроде (по крайней мере, об это сообщает GetConsoleOutputCP), но на экране все равно кракозябры.
Пробовал SetConsoleCP - эффект аналогичный. Что ж и в каких комбинациях вызывать, чтоб кириллица нормальная была в консоли?


 
Digitman ©   (2005-07-13 12:55) [1]

var
s: String;
..
s := "КИРИЛЛИЦА";
CharToOEM(pchar(s), pchar(s));
writeln(s);


 
Вольный Стрелок ©   (2005-07-13 12:57) [2]

но консоль не обязана быть в 866 кодировке
я хочу сделать, чтоб вне зависимости от CP консоли на ней всегда выводилось в нужной кодировке


 
Alexander Panov ©   (2005-07-13 12:59) [3]

Вольный Стрелок ©   (13.07.05 12:57) [2]
но консоль не обязана быть в 866 кодировке


а CharToOEM не переводит в 866 кодировку.


 
Вольный Стрелок ©   (2005-07-13 13:04) [4]

а что тогда OEM-defined character set?
и нафига тогда SetConsoleOutputCP ?


 
Anatoly Podgoretsky ©   (2005-07-13 13:08) [5]

Ты нас спрашиваешь?


 
DiamondShark ©   (2005-07-13 13:13) [6]

Опытным путём установлено, что SetConsoleOutputCP даёт заявленый эффект лишь при условии, что:
- консольное приложение не в полноэкранном режиме;
- для окна консоли установлен шрифт Lucida Console.


 
Anatoly Podgoretsky ©   (2005-07-13 13:20) [7]

DiamondShark ©   (13.07.05 13:13) [6]
В полноэкранном требуется перепрограммирование знакогенератора, ОС этим не занимается.


 
DiamondShark ©   (2005-07-13 13:31) [8]

и нафига тогда SetConsoleOutputCP ?


 
Anatoly Podgoretsky ©   (2005-07-13 13:34) [9]

DiamondShark ©   (13.07.05 13:31) [8]
Для преобразований, там где это возможно.


 
Вольный Стрелок ©   (2005-07-13 13:52) [10]

[5]
Спрашиваю. Ведь для того и форум, так?

Просто в одном из примеров видел именно применение SetConsoleOutputCP для этой цели, но у меня что-то не так себя ведет, как там описано...

[9]
что значит, "где возможно"? критерии возможности какие?
И почему знакогенератором ОС не занимается? Драйвер видюхи должен? Дык, тогда все равно ос ему команды должна давать.


 
Вольный Стрелок ©   (2005-07-13 13:58) [11]

Кстати, про шрифт консоли. Можно ли к ней прикрутить другой моноширинный шрифт, а не только Lucida? И как?


 
Вольный Стрелок ©   (2005-07-13 15:30) [12]

2 DiamondShark
только что ставил эксперименты и понял, что у меня не совсем так, как в [6]
1. при полноэкранном режиме тоже работает корректно при Lucida Concole
2. даже без Lucida (просто точечный шрифт) SetConsoleOutputCP ведет себя правильно в полноэкранном режиме
3. при переходе из полноэкранного в оконный при точечном шрифте уже правильно выведенное на консоль сообщение остается в нужной кодировке, а вот новое - увы, плющит

2 Anatoly Podgoretsky
Из п.3 можно сделать вывод, что проблема в самой SetConsoleOutputCP, а не в знакогенераторе.


 
Вольный Стрелок ©   (2005-07-13 17:21) [13]

up


 
Вольный Стрелок ©   (2005-07-13 18:37) [14]

вижу, народ идей больше не имеет :(
может, хоть на [11] что-то скажете?


 
DiamondShark ©   (2005-07-13 18:42) [15]


> Вольный Стрелок ©   (13.07.05 15:30) [12]

Значит в разных версиях винды по разному. У меня 2000.


 
Вольный Стрелок ©   (2005-07-14 12:48) [16]

снова up



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.041 c
14-1121026527
Гость__
2005-07-11 00:15
2005.07.31
Банальный вопрос:


3-1118909546
zorik
2005-06-16 12:12
2005.07.31
Экспорт-Импорт (Объединение баз)


6-1113916300
Alpine
2005-04-19 17:11
2005.07.31
Как изменить соединение с интернотм по умолчанию ?


1-1121101074
-virus-
2005-07-11 20:57
2005.07.31
помогите, проблема с файлом.


6-1113992960
zorik
2005-04-20 14:29
2005.07.31
Как узнать значение параметра (cgi-приложение)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский