Русский язык в Lazarus
Lazarus IDE: Основы программирования в Windows
Несмотря на то, что всё потихоньку уходит в сеть, программирование для настольных компьютеров остаётся востребованным. И будет таковым ещё долго. Ну а самая распространённая операционная система для настольных компьютеров – это по-прежнему Windows. Поэтому любой программист, даже если он собирается стать веб-разработчиком, должен знать хотя бы основы создания программ для Windows. Подробнее... |
Я уже рассказывал о способах вывода русских букв в консольных приложениях, создаваемых с помощью Lazarus (здесь и здесь). Оба этих способа не лишены недостатков. Вообще с выводом русских букв (не только в консоль) всегда много заморочек. Поэтому чем больше вы знаете способов решения этой задачи, тем лучше. Так что держите третий способ - он тоже не безупречен, но во многих случаях его можно применять.
Казалось бы, что с переходом на Юникод, все неприятности с национальными алфавитами останутся в прошлом. Но не тут-то было. И программисты продолжают ломать голову над тем, как вывести текст на языке, отличающемся от английского, в понятном для пользователя виде.
А дело в том, что редактор исходного кода Lazarus по умолчанию работает с кодировкой Юникод. А вот консоль Windows (в том числе и Windows 10/11) - нет. По умолчанию там по прежнему используется кодовая страница 866 для русского языка (кодировка OEM). А это означает, что при использовании русских букв в консольном приложения при выводе их на экран вы увидите “краказябры”. Вот такая программа:
program test; begin WriteLn('Привет, МИР!!!'); WriteLn('Для завершения программы нажмите ENTER'); ReadLn; end.
выведет вот это:
Из всего сообщения понятно пользователю будет только слово ENTER, поскольку оно написано английскими буквами.
В общем, суть описываемого ниже способа заключается в том, чтобы переключить консоль на вывод символов в
кодировке Юникод. Сделать это можно по-разному. Но я предлагаю, пожалуй, самый простой - с
использованием директивы компилятора
$CODEPAGE
, которая устанавливает кодовую страницу консоли. Чтобы установить кодировку Юникод, директива может быть такой:
{$CODEPAGE UTF8}
Вставлять директиву лучше в начале программы. Наш пример выше может быть таким:
program test; {$CODEPAGE UTF8} begin WriteLn('Привет, МИР!!!'); WriteLn('Для завершения программы нажмите ENTER'); ReadLn; end.
И тогда консоль Windows вам покорится, и выведет русские буквы правильно:
Вступить в группу "Основы программирования"
Подписаться на канал в РУТУБ Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Первые шаги в программирование
Очень небольшая книга, которую можно прочитать буквально за 15 минут. Но эти 15 минут дадут вам представление о том, что такое программирование. И вы даже напишите свою первую программу. Для тех, кто интересуется программированием, но ещё не знает, что это такое, и не пробовал создавать программы (или пробовал, но не получилось). Подробнее... |
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее... |