Wie binde ich mit der Datenbindung Text, der Emojis enthält, an ein Etikett und lasse ihn korrekt anzeigen?

Lesezeit: 2 Minuten

Wie binde ich mit der Datenbindung Text der Emojis enthalt
KDev

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 &#x1f642; nice to meet you."/>
Geben Sie hier die Bildbeschreibung ein

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}" />

Geben Sie hier die Bildbeschreibung ein

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;
Geben Sie hier die Bildbeschreibung ein

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


Das liegt daran, dass Sie eine Zeichenfolge von einer API erhalten haben, die für die HTML-Übertragung codiert ist. Vielleicht verwenden System.Net.WebUtility.HtmlDecode.

(XAML decodiert Wertzeichenfolgen automatisch, sodass Sie dies nicht tun mussten, wenn sich die Zeichenfolge in XAML befand, da es einige Unicode-Zeichen gibt, die in XML nicht zulässig sind.)

.

757500cookie-checkWie binde ich mit der Datenbindung Text, der Emojis enthält, an ein Etikett und lasse ihn korrekt anzeigen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy