Раздел: Статьи / Lazarus /

Русский язык в Lazarus

Lazarus IDE: Основы программирования в Windows Lazarus IDE: Основы программирования в Windows

Несмотря на то, что всё потихоньку уходит в сеть, программирование для настольных компьютеров остаётся востребованным. И будет таковым ещё долго. Ну а самая распространённая операционная система для настольных компьютеров – это по-прежнему Windows. Поэтому любой программист, даже если он собирается стать веб-разработчиком, должен знать хотя бы основы создания программ для Windows. Подробнее...

Я уже рассказывал о способах вывода русских букв в консольных приложениях, создаваемых с помощью Lazarus (здесь и здесь). Оба этих способа не лишены недостатков. Вообще с выводом русских букв (не только в консоль) всегда много заморочек. Поэтому чем больше вы знаете способов решения этой задачи, тем лучше. Так что держите третий способ - он тоже не безупречен, но во многих случаях его можно применять.

Казалось бы, что с переходом на Юникод, все неприятности с национальными алфавитами останутся в прошлом. Но не тут-то было. И программисты продолжают ломать голову над тем, как вывести текст на языке, отличающемся от английского, в понятном для пользователя виде.

А дело в том, что редактор исходного кода Lazarus по умолчанию работает с кодировкой Юникод. А вот консоль Windows (в том числе и Windows 10/11) - нет. По умолчанию там по прежнему используется кодовая страница 866 для русского языка (кодировка OEM). А это означает, что при использовании русских букв в консольном приложения при выводе их на экран вы увидите “краказябры”. Вот такая программа:

program test;

begin
  WriteLn('Привет, МИР!!!');
  WriteLn('Для завершения программы нажмите ENTER');
  ReadLn;
end.

выведет вот это:

Lazarus выводит краказябры

Из всего сообщения понятно пользователю будет только слово ENTER, поскольку оно написано английскими буквами.

В общем, суть описываемого ниже способа заключается в том, чтобы переключить консоль на вывод символов в кодировке Юникод. Сделать это можно по-разному. Но я предлагаю, пожалуй, самый простой - с использованием директивы компилятора $CODEPAGE, которая устанавливает кодовую страницу консоли. Чтобы установить кодировку Юникод, директива может быть такой:

{$CODEPAGE UTF8}

Вставлять директиву лучше в начале программы. Наш пример выше может быть таким:

program test;

{$CODEPAGE UTF8}

begin
  WriteLn('Привет, МИР!!!');
  WriteLn('Для завершения программы нажмите ENTER');
  ReadLn;
end.

И тогда консоль Windows вам покорится, и выведет русские буквы правильно:

Русский язык в Lazarus


Первые шаги в программирование Первые шаги в программирование

Очень небольшая книга, которую можно прочитать буквально за 15 минут. Но эти 15 минут дадут вам представление о том, что такое программирование. И вы даже напишите свою первую программу. Для тех, кто интересуется программированием, но ещё не знает, что это такое, и не пробовал создавать программы (или пробовал, но не получилось). Подробнее...
Помощь в технических вопросах Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика