wie man Emoji in Android kodiert und entschlüsselt?
Ich verwendet https://github.com/rockerhieu/emojicon Bibliothek in meiner Anwendung. Wenn ich den pass eine statische unicode-Zeichenfolge in meinem code die emoji sichtbar ist, aber wenn ich senden emoji zu php-server mithilfe von regulären bekommen webservice ermittelt werden und der string dann nur mit unicode-Zeichenfolge in meiner Anwendung. sowohl die statische als auch server abgerufen strings gleich sind, wenn ich Vergleiche.
Kann mir jemand sagen, was ich falsch gemacht habe, in meine Anwendung. die gleiche Anwendung wird entwickelt, IOS und was Sie getan haben ist, dass Sie zunächst die Kodierung der Zeichenfolge in ASCII - >UTF-8 beim senden zum server.
dann sind Sie decodieren der Zeichenfolge in der gleichen Weise, wie Sie senden. Kann jemand empfehlen, mir wäre dies kompatibel mit android, Wenn ja dann wie kann ich dies tun.
InformationsquelleAutor der Frage Vishnu | 2014-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wir verwenden können, commons-lang - (commons-lang-2.5.jar) Bibliothek zum codieren und decodieren von unicode-Zeichen. Download der jar-Datei hier oder verwenden gradle:
compile 'org.apache.commons:commons-lang3:3.4'
.Für die Codierung verwenden -
StringEscapeUtils.escapeJava(String text)
Dies kann verwendet werden, in der android -
EditText
wenn der AnrufgetText
- Methode, bei der es codieren, die unicode-Zeichen korrekt vor dem senden an die web-server.Für die Decodierung verwenden -
StringEscapeUtils.unescapeJava(String text)
Dies kann verwendet werden, in der android -
TextView
zusetText
, wo es decodiert die unicode-Zeichen korrekt nach Erhalt der Antwort vom web-server.Ex:
FYI Verwenden Sie die Codierung und Decodierung für web-service-Seite als auch. Unicode-codierte string sollte decodiert werden, die von web-service-und-Antwort-von-web-service codiert werden sollten, bevor Sie an die Kunden. Server-Tabellen enthalten sollte, utf8mb4 statt utf8, da unicode-character braucht 4bytes pro Charakter. Daher unicode nicht dargestellt werden 3bytes.
InformationsquelleAutor der Antwort Dulan Anuradha Bandara Dissana
Habe ich die gleiche Bibliothek, wie Sie für emoji.
Ich habe URLEncoder verwendet.encode(commentString, "UTF-8") für die Kodierung und ebenso
URLDecoder.decode(encodedComment, "UTF-8") für die Decodierung.
Funktioniert perfekt für mich. Hoffentlich auch für Sie.
InformationsquelleAutor der Antwort Neeraj Shukla
Ich bin mit dem gleichen Bibliothek ... brauchen Sie nicht zu Kodieren, oder die Flucht der emoji ... einfach getText().toString() funktioniert.
Befolgen Sie die Schritte
In mysql ändern Sie das Feld Sortierung
utf8mb4_unicode_ci
(meine Datenbank und Tabelle Sortierung utf8_unicode_ci)Verwendeten PHP Codigniter auf dem server, damit die Datenbank-Konfiguration
Dann in Android verwenden
textView.getText().toString();
dann senden Sie den text ohne Kodierung oder FluchtInformationsquelleAutor der Antwort Sabeer Mohammed
Beispiel :
Ersetzen
U+
mit0x
.InformationsquelleAutor der Antwort Gowtham Kumar
In meinem Fall den gesamten text in die Nachricht verschwindet nach Symbolen & - und +, also beschloss ich, ersetzen Sie Sie vor dem senden und nach dem Empfang und es funktioniert gut für mich.
InformationsquelleAutor der Antwort Денис Шовгеня
Emojis
muss codiert und decodiert . Senden Sie die text-zu-server-Codierung und zeigen wieder in dieapp
mit der Entschlüsselung der gleiche. Der code ist unten für die Verschlüsselung und die Entschlüsselung.InformationsquelleAutor der Antwort parambir singh