我想像 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