Like @RRUZ, it EncodeString()expects you to specify the byte encoding into which the input will be converted String, and then these octets will be encoded to base64.
UTF8String EncodeString(), UnicodeString XE5, RTL UTF8String UTF-16, UTF8Encode() ( , BTW). , Indy , ASCII ( GIdDefaultTextEncoding IdGlobal).
orange ( ), سلام ( ).
UTF8String Indy UTF-8 :
procedure TForm5.Button2Click(Sender: TObject);
begin
m2.Text := TIdEncoderMIME.EncodeString(m1.Text, IndyTextEncoding_UTF8);
end;
DecodeString() , base64. , UnicodeString , :
procedure TForm5.Button3Click(Sender: TObject);
begin
m1.Text := TIdDecoderMIME.DecodeString(m2.Text, IndyTextEncoding_UTF8);
end;