Ciao a tutti,
ho un progetto, con cui scarico i dati dei miei "allenamenti" da SportsTracker, e li emetto.
Se nell'app dello smartphone metto un commento usando le emoticon, questo viene salvato con qualcosa di simile a questo:
Grandissima prestazione \uD83D\uDE04\uD83E\uDD23\uD83D\uDE02\uD83D\uDE00\uD83D\uDE01
Da quel che ho capito, ognuna delle sequenze di 6 caratteri che inizia con "\u", è una emoticon.
Quando nel mio progetto tento di emettere quella stringa, al posto di ogni emoticon, mi ritrovo un punto di domanda.
Sapete se c'è già qualcosa che mi permetta di emettere le emoticon al posto dei punti di domanda?
Grazie in anticipo, Mario
Ciao,
devi trovare il sistema di convertire da UTF-16 a utf-8 e poi sperare che venga renderizzato nel controllo.
Forse con qualcosa del genere (è un abbozzo, preso da qui https://forum.lazarus.freepascal.org/index.php/topic,38893.0.html (https://forum.lazarus.freepascal.org/index.php/topic,38893.0.html), tanto per capire)...
var
s, c1, c2 : String;
list : TStringList;
i, couples : integer;
begin
list := TStringList.Create;
try
list.Delimiter:= '\';
list.DelimitedText:= '\uD83D\uDE04\uD83E\uDD23\uD83D\uDE02\uD83D\uDE00\uD83D\uDE01';
s := '';
couples := list.Count div 2;
for i:= 0 to couples - 1 do
begin
c1 := '$' + Copy(list.Strings[(i * 2) + 1], 2, 99);
c2 := '$' + Copy(list.Strings[(i * 2) + 2], 2, 99);
S+=WideChar(StrToInt(c1))+WideChar(StrToInt(c2));
end;
ShowMessage(S);
finally
list.Free;
end;