Как исправить отображение русских символов в Lazarus
Создал программу для шифрования текста. При работе с английскими символами все хорошо, но если вводить русские символы, то вместо зашифрованного текста отображаются вопросительные знаки. Если поместится, размещу исходный код.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Menus;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button1Click(Sender: TObject);
var ent,ex,key,keywrk,al:string;
nent,nkw,nal,k,i,j,n:integer;
begin
al:='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
ent:=edit1.text;
key:=edit2.text;
keywrk:=key;
nent:=length(ent);
ex:=ent;
nal:=length(al);
repeat keywrk:=keywrk+key
until length(keywrk)>=nent;
for k:=1 to nent do
if ent[k]=' ' then ex[k]:=' '
else
begin;
i:=0;
repeat
i:=i+1
until al=ent[k];
j:=0;
repeat
j:=j+1;
until al[j]=keywrk[k];
n:=i+j-1;
if n>nal then n:=n-nal;
ex[k]:=al[n];
end;
edit3.text:=ex;
end;
end.
P.S. Исходная кодировка в Lazarus - UTF8
Извиняюсь за отсутствие оформления (при вставке табуляция убралась)