я хочу кодировать строки, как это делает Python.
Код Python такой:
def EncodeToUTF(inputstr):
uns = inputstr.decode('iso-8859-2')
utfs = uns.encode('utf-8')
return utfs
Это очень просто.
Но в Delphi я не понимаю, как кодировать, чтобы сначала установите правильный набор символов (независимо от того, какой компьютер у нас есть).
Я попробовал этот тестовый код, чтобы увидеть преобразование:
procedure TForm1.Button1Click(Sender: TObject);
var
w : WideString;
buf : array[0..2048] of WideChar;
i : integer;
lc : Cardinal;
begin
lc := GetThreadLocale;
Caption := IntToStr(lc);
StringToWideChar(Edit1.Text, buf, SizeOF(buf));
w := buf;
lc := MakeLCID(
MakeLangID( LANG_ENGLISH, SUBLANG_ENGLISH_US),
0);
Win32Check(SetThreadLocale(lc));
Edit2.Text := WideCharToString(PWideChar(w));
Caption := IntToStr(AnsiCompareText(Edit1.Text, Edit2.Text));
end;
Ввод: "árvíztűrő tükörfúrógép", Локальный lc - 1038 (hun), новый lc - 1033.
Но это каждый раз дает 0 результатов (те же строки), и акценты такие же, я не потерял ŐŰ, который не на английском языке.
] Что я делаю не так? Как мне делать то же, что и Python?
Спасибо за любую помощь, ссылку и т. Д .: dd