Wie kann ich utf-16-Zeichen in der Android-string-Ressource?
Will ich mit Emojis in meiner app über die Saiten. Alle Saiten befinden sich, natürlich, in strings.xml
Das problem ist, dass nicht alle Emojis sind 16-bit-freundlich. Einige Emojis dargestellt werden kann, wie "normale" 16-bit-hex: '\u26FF' aber einige sind 32-bit-Felder (UTF-16), in der Regel dargestellt als: '\x1F600'. Ich habe kein problem, den Umgang mit diesen in der app im code. Aber die strings.xml Ressource-Datei ist UTF8 kodiert, und befasst sich nicht richtig mit nicht-16-bit-escape-chars.
Versuchte ich mit '\x1F600' - weil ich sah, dass '\u26FF' funktioniert Prima. Aber es scheint nicht zu verschlingen, die 'x' escape-char. Noch hat Sie wie die regexp-notation '\x{1F600}'
So landete ich mit einem string-Platzhalter '%1$s' und füllen Sie die Emoji in code wie diesem:
//greeting_3 is defined as: "hello there %1$s!"
String s = context.getString(R.string.greeting_3, "?");
//OR:
String s = context.getString(R.string.greeting_3, new String(Character.toChars(0x1F61C)));
Dies ist keine sehr elegante Lösung... gibt es eine richtige Weg, um 32-bit-UTF-8-Zeichen in strings.xml ?
InformationsquelleAutor Shoham | 2014-07-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn es UTF-8 codiert ist, können Sie Ihre emojis direkt. Aber dann riskieren Sie, dass Ihr editor oder ein anderes Stück software zerstört.
Wenn Sie setzen Sie Sie in XML, können Sie versuchen, mit XML-Entitäten:
😀
ich bin mir nicht sicher, wie gut sich Android unterstützt Sie zwar.Können Sie auch ersatzpaare: konvertieren Sie die emoji UTF-16 und verwenden standard -
\u
entkommen. Sie können beispielsweise prüfen, diese Seite, es hat sogar erzählt, wie man einen string litaral in Java: http://www.fileformat.info/info/unicode/char/1F600/index.htm? → U+1F600 →
"\uD83D\uDE00"
Ich habe versucht, die raw-text und 😀 mit segfault at runtime, und �� mit build-Fehler ("Fehler in einer XML-Datei: Abbruch und Aufbau. "). Ich denke, man kann sicher einen bug, it ' s gültig.
Bekannte Fehler: code.google.com/p/android/issues/detail?id=64892
Dieser stürzte auf Samsung S4 5.0.1
Beispiel Java-code:
String grinningFaceEmoji = "\uD83D\uDE00";
InformationsquelleAutor Karol S
Ich bin vorausgesetzt, Sie entwickeln so etwas wie Emoji-Tastatur. #EmojiCodeSheet Ihnen helfen kann, auf das
Projekt Link: https://github.com/shanraisshan/EmojiCodeSheet
Alle emoji dargestellt werden kann in 2 verschiedenen form
Beispiel : SMILING_FACE_WITH_SUN_GLASS Emoji
Können Sie ganz einfach anzeigen emojis bei Android entweder durch speichern in xml oder java, die Liste befindet sich unter
brauchen Sie nur zu ersetzen, diese emoji-codes mit der emoji-Bilder in Ihrem android-app, indem Sie ein paar Zeilen code.
InformationsquelleAutor shanraisshan
Der einfachste Weg es einfach zu kopieren und einfügen von emoji, es funktioniert von Android Studio 3.0 und neuere
InformationsquelleAutor Jesus Almaral
Hinzufügen der Ressource wie folgt:
In Android Studio 3.0 können Sie kopieren und einfügen von emoji:
Und hier wie es aussieht:
InformationsquelleAutor kikoso