Chcę kodować ciągi znaków w języku Python.Delphi: Kodowanie ciągów znaków jako Python do
kod Python jest taka:
def EncodeToUTF(inputstr):
uns = inputstr.decode('iso-8859-2')
utfs = uns.encode('utf-8')
return utfs
To jest bardzo proste.
Ale w Delphi nie rozumiem, jak kodować, najpierw wymusić dobry zestaw znaków (bez względu na to, który komputer mamy).
Próbowałem ten kod testowy, aby zobaczyć Konwersja:
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;
wejście jest: "árvíztűrő tükörfúrógép" węgierski frazy tester akcent. Lokalny lc to 1038 (hun), nowy lc to 1033.
Ale to za każdym razem daje wynik 0 (te same struny), a akcenty są takie same, nie zgubiłem ŐŰ, co nie jest w języku angielskim.
Co robię źle? Jak zrobić to samo, co robi Python?
Dzięki za każdą pomoc, link, etc: dd
-1 EncodeToUTF nie skompiluje się dla Delphi2009, zmieni mój głos, kiedy zostanie naprawiony – Wodzu
Mam podkręcone przykłady –
Dzięki Remy, +1 – Wodzu