Ich schreibe eine App als Schnittstelle zu einer WordPress BuddyPress-API. Die App ermöglicht es Benutzern, sich über die API Nachrichten zu senden. Ich habe Schwierigkeiten, diese Nachrichten korrekt anzuzeigen, wenn sie Emojis enthalten. Hier ist ein kurzes Beispiel für einen Nachrichtentext, wie er von der API zurückgegeben wird:
"Hi 🙂 hope you are doing well."
Wenn ich den Beschriftungstext explizit wie unten festlege, wird er korrekt angezeigt (dh das Smiley-Emoji wird korrekt angezeigt).
<Label Text="Hi 🙂 nice to meet you."/>
Wenn ich jedoch den Beschriftungstext an das Zeichenfolgenfeld in meinem Ansichtsmodell binde, wird nur der Code für Emoji mit dem enthaltenen Text angezeigt.
<Label Text="{Binding message.raw}" />
Hier sind die Daten, die von der WP BP-API zurückgegeben werden, wie sie in Postman für den „message“-Knoten zu sehen sind;
Was muss ich mit der datengebundenen “Nachricht”-Zeichenfolge tun, damit sie korrekt angezeigt wird?
Um 100% sicher zu sein, dass das Problem kein subtiler Fehler ist, zeigen Sie bitte das Ansichtsmodell. Insbesondere die Deklaration von “Nachricht” und der Code, der diese Zeichenfolge in “Nachricht” eingefügt hat.
– WerkzeugmacherSteve
10. Juli 21 um 13:40 Uhr
Hallo @ToolmakerSteve, nach weiteren Recherchen scheint dieser Unterschied auf die Funktionsweise von XAML zurückzuführen zu sein, ref. evgenyzborovsky.com/2018/04/07/the-ultimate-guide-to-emojis. Es scheint, dass für gebundene Daten das 🙂 XML-Markup wird nicht korrekt konvertiert, es muss im Unicode-Format vorliegen, aber wenn Sie den Text direkt über XAML festlegen, funktioniert es einfach. Sieht so aus, als müsste ich hier eine Art Konvertierung vornehmen, aber ich bin mir nicht genau sicher, wie.
– KDev
10. Juli 21 um 13:51 Uhr
Volltreffer @ToolmakerSteve. Das hat funktioniert. Möchten Sie Ihren Kommentar als Antwort umschreiben und ich werde ihn akzeptieren?
– KDev
10. Juli 21 um 14:08 Uhr