I get strings with Unicode emojis like
$F09F998A
or
$F0 $9F $99 $8A
or
\xF0\x9F\x99\x8A
-> 🙊 from an SQL database.
s1 := '$F09F998A'; // From Database
s2 := '$F0 $9F $99 $8A'; // From Database
s3 := '\xF0\x9F\x99\x8A'; // From Database
How do I convert s1,s2,s3 to display as 🙊 in e.g., a TMemo
element?
How do I convert s1,s2 or s3?
// Memo1.lines.add('how to convert ' + ????? -> $F0 $9F $99 $8A );
Memo1.lines.add('how to convert ' + s1 + s2 + c3 + ' as Emoji?');
I want convert < s := '\xF0\x9F\x99\x8A'; > to add to a Memo field to show as Emoji.
function convert_as_Emoji(s: string):string;
begin
result := ???
end;
and then
var s : string;
s := '\xF0\x9F\x99\x8A';
Memo1.lines.add(convert_as_Emoji(s));
Now I do this with success:
In UTF-8, 🙊 is bytes $F0 $9F $99 $8A – Remy Lebeau
procedure TForm1.Button1Click(Sender: TObject);
var
bytes: array[0..3] of byte;
str: string;
const emoji = '$F0$9F$99$8A'; // 🙊
begin
bytes[0] := strtoint('$F0'); // bytes[0] := $F0;
bytes[1] := strtoint('$9F'); // bytes[1] := $9F;
bytes[2] := strtoint('$99'); // bytes[2] := $99;
bytes[3] := strtoint('$8A'); // bytes[3] := $8A;
str := TEncoding.UTF8.GetString(bytes);
showmessage(str);
end;