WriteConsoleOutputCharacter проблема c русским алфавитом

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
fondreykus-1
незнакомец
Сообщения: 5
Зарегистрирован: 09.07.2010 14:07:01

WriteConsoleOutputCharacter проблема c русским алфавитом

Сообщение fondreykus-1 »

Здравствуйте. Пользуюсь FreePascal в режиме Delphi compatible
Наткнулся вот на что: WriteConsoleOutputCharacter не хочет правильно отображать русский алфавит. Точнее, если написать следующее:

Код: Выделить всё

var  
  Wr: LongWord;
  P:_COORD;
  Output: Handle;
  Buff: Array[1..80] of Char;
begin
  Output:=GetStdHandle(STD_OUTPUT_HANDLE);
  P.x:=2;
  P.y:=2;
  Buff:='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
  WriteConsoleOutputCharacter(Output,@Buff,33,P,Wr);
end.

то половина букв будет просто проигнорирована, в строке будут пустые места. Причём с английским алфавитом такого не случается. Можно ли это как-нибудь "вылечить"? Заранее спасибо
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Re: WriteConsoleOutputCharacter проблема c русским алфавитом

Сообщение Mr.Smart »

Я так полагаю, что вы набираете текст программы в среде Lazarus, а как известно (с незапамятных времён) текст программы вводится в кодировке UTF-8. От сюда и грабли...
fondreykus-1
незнакомец
Сообщения: 5
Зарегистрирован: 09.07.2010 14:07:01

Re: WriteConsoleOutputCharacter проблема c русским алфавитом

Сообщение fondreykus-1 »

Я набираю текст в OEM редакторе FreePascal. Проблема в том, что WriteLn(Buff[1..33]) работает как надо, а WriteConsoleOutputCharacter выкидывает фокусы.
z.g
новенький
Сообщения: 17
Зарегистрирован: 15.02.2010 00:02:45

Re: WriteConsoleOutputCharacter проблема c русским алфавитом

Сообщение z.g »

это известный баг консоли.
помогает:
1. установка консоли векторного шрифта.
2. использование WriteConsoleOutputCharacterW.
3. использование более других функций консоли для достижения требуемого эффекта.
fondreykus-1
незнакомец
Сообщения: 5
Зарегистрирован: 09.07.2010 14:07:01

Re: WriteConsoleOutputCharacter проблема c русским алфавитом

Сообщение fondreykus-1 »

Спасибо! Очень благодарен!
Ответить