gpt4 book ai didi

delphi - 使base64解码的文本可见而不改变 "windows language for non unicode program settings"“

转载 作者:行者123 更新时间:2023-12-01 18:10:00 26 4
gpt4 key购买 nike

我使用 Base64 编码工具(如 Indy 工具)对 TMemo 中的文本进行编码,但在解码结果文本后,我只得到一些“?”字符而不是正确的文本。原文为波斯语。

问题是:

如果我将 Windows“非 unicode 程序的语言”设置为波斯语,我可以看到解码的文本。但我想让解码的文本可见而不更改“windows non unicode ...”。

我已经坚持了大约两周了!我尝试了“UTF8ToWideString”、“UTF8ToUTF16”、“UTF8ToUnicodeString”、“UTF8ToString”、“UTF8Decode”和“UTF8EncodeToShortString”,但没有一个起作用。

编码>

  var input,output:TstringStream;
begin
input:=nil;
output:=nil;
input:=TstringStream.Create;
output:=TstringStream.Create;
memo1.Lines.SaveToStream(input);

input.Position:=0;
encoder.Encode(input,output);
output.Position:=0;
memo2.Clear;
memo2.Lines.LoadFromStream(output);
input.Free;
output.Free
end;

解码>>

var input,output:TStringStream;
begin
memo3.Clear;
input:=nil;
output:=nil;
input:=TStringStream.Create();
output:=TStringStream.Create();
memo2.Lines.SaveToStream(input);
input.Position:=0;
decoder.DecodeBegin(output);
decoder.Decode(input);
decoder.DecodeEnd;
output.Position:=0 ;
memo3.Lines.Add(output.DataString);
end;

我也尝试过delphi内部编码工具。如下

// encoding >
memo2.Lines.Add(EncodeString(memo1.Lines.Text))
// decoding>

memo3.lines.add(DecodeString(memo2.Lines.Text)) ;

最佳答案

尝试这样的事情:

memo2.Text := TIdEncoderMIME.EncodeString(memo1.Text, IndyUTF8Encoding);

memo3.Text := TIdEncoderMIME.DecodeString(memo2.Text, IndyUTF8Encoding);

关于delphi - 使base64解码的文本可见而不改变 "windows language for non unicode program settings"“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8984247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com