Я кодировал текст в TMemo, используя инструменты кодирования base64 (например, инструменты Indy), но после декодирования текста результата я просто получаю несколько символов «?» Вместо правильного текста.исходный текст написан на персидском языке.
ВОПРОС ЕСТЬ:
Я могу увидеть декодированный текст, если на персидском языке установить Windows "язык для программ, не поддерживающих Юникод".но я хочу сделать декодированный текст видимым, не меняя "windows non unicode ...".
Уже около двух недель я застрял на этом!Я пытался "UTF8ToWideString", "UTF8ToUTF16", "UTF8ToUnicodeString", "UTF8ToString", "UTF8Decode" и "UTF8EncodeToShortString", но ни один из них не работал.
1000 *1000* кодирование>>
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)) ;