Emoji-Zeichen nicht codiert werden, um JSON
Ich habe eine UITextView
ich nenne messageField
. Die Daten innerhalb dieser messageField
ist POST
-ed-server im JSON-format. Wenn der Benutzer tippt ein Emoji-Zeichen, ich habe Probleme bei der Kodierung der Daten zu JSON
. Ich bin am überlegen Emoji verwendet Unicode-Kodierung.
Gibt es eine Möglichkeit zu codieren eine Emoji-Zeichen, um JSON? Und zurück von JSON zu Emoji für die Anzeige in einer UILabel
?
Kann ich das ändern decodieren emoji in ios, die codiert ist in php-Seite ? wenn ja, als wie kann ich dies in beide Seite. ich versuche aber arbeiten nicht nur beide Kodieren und Dekodieren von gleicher Größe . Sonst funktioniert nicht 🙁 also bitte geben Sie mir einige Lösung . Vielen Dank im Voraus.
InformationsquelleAutor janusfidel | 2011-08-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bearbeiten - 2016-03-03 Bitte beachten Sie, dass diese Antwort wurde geschrieben, 2011 und ist möglicherweise nicht mehr relevant nicht mehr.
Emoji-Zeichen sind nur eine bestimmte schriftart verwendet, um die Darstellung einer bestimmten unicode-code-points. iOS verwendet eine Unicode-Bereichen für den Privaten Gebrauch für Emoji-spezifische code-Punkte. Der einzige Weg, um diese "Zeichen" als Emoji ist ein Emoji-schriftart verfügbar ist, sowie eine Maschine, die weiß, wie die Schalter aus der Standard-Schrift (z.B. Helvetica), um die emoji schriftart.
Ich weiß nicht, wie du encodest Ihre JSON-aber da Emoji sind einfach nur text, sollte es keine Probleme geben, solange Sie transportieren den text in eine Unicode-freundlichen format wie UTF-8 oder UTF-16. Man sieht es nicht auf der server-Seite oder in der Datenbank (wenn Sie die Daten anzeigen, die mit den bisherigen Voraussetzungen), aber Sie sollten in der Lage sein, zu senden der gleichen raw-bytes zurück und es sollte gleich Aussehen.
Hier einige Beiträge, die helfen könnten, ein wenig mehr:
Kann ich das ändern decodieren emoji in ios, die codiert ist in php-Seite ? wenn ja, als wie kann ich dies in beide Seite. ich versuche aber arbeiten nicht nur beide Kodieren und Dekodieren von gleicher Größe . Sonst funktioniert nicht 🙁 also bitte geben Sie mir einige Lösung . Vielen Dank im Voraus.
Dieser Kommentar sollte wirklich eine Frage
InformationsquelleAutor Chris Haas
Verwende ich den untenstehenden code zu Kodieren emoji-Zeichen
Und den folgenden code zu entschlüsseln und anzeigen in UILabel
Kann ich das ändern decodieren emoji in ios, die codiert ist in php-Seite ? wenn ja, als wie kann ich dies in beide Seite. ich versuche aber arbeiten nicht nur beide Kodieren und Dekodieren von gleicher Größe . Sonst funktioniert nicht 🙁 also bitte geben Sie mir einige Lösung . Vielen Dank im Voraus.
Es hängt von der Art der Codierung, die Sie auf der PHP-Seite.
Es funktionierte für mich. Von Ihnen positiv bewertet werden!
Danke.Es funktioniert.
InformationsquelleAutor Karun
Ich hatte das gleiche problem, nach dem Graben, für Stunden, und schließlich fand diese Antwort, die für mich funktioniert:
https://stackoverflow.com/a/8339255/1090945
Wenn Sie verwenden, Schienen Ihre server, das ist alles was Sie tun müssen. Keine Notwendigkeit, etwas zu tun in der ios - /xcode, geben Sie nur den NSString ohne UTF8/16-Codierung Zeug auf den server.
Postegre speichert den code nicht korrekt, es ist nur, wenn Sie senden Sie die json-Antwort zurück, um Ihre ios-client, vorausgesetzt, Sie tun Rendern json:@message die json-Kodierung problem hat.
könnten Sie testen, ob Sie mit json-Codierung problem in Ihrer rails-console, indem Sie als einfachen test:
wenn es druckt "{\"smiley\":\"\uf604\"}" (beachten Sie die 1 verloren), dann haben Sie dieses problem. und der patch aus dem link fix it.
InformationsquelleAutor lionel
Dank @Karu, Bearbeiten Ihre Antwort,ich benutze diesen code:
Kodieren für senden zum server:
Entschlüsseln, zu empfangen und zu zeigen, emoji text:
Diesen code laufen perfekt auf iOS 9
InformationsquelleAutor Lito
Einer Sache bewusst zu sein, mit Emoji - wenn Ihr json-encoder ist für die Erzeugung von ASCII-Ausgabe (d.h. mit den \u<4 hex-Ziffern> Zeichen-format), einige Emoji-Charaktere zu brechen, denn Sie verwenden mehr als zwei bytes und somit passen nicht in die 4 hex-Ziffern erlaubt.
So, in python zum Beispiel, verwenden Sie:
InformationsquelleAutor Richard
Update Swift & Objective C
Wenn Sie senden möchten, senden Sie eine emoji-Element über JSON, müssen Sie zuerst Formiat-DB auf UTF-8 UND bei IOS müssen Sie codieren für NSUTF8StringEncoding. Also zunächst sicherstellen, dass Ihr DB-Format in UTF-8 codieren dann Parameter zu NSUTF8StringEncoding.So, hier ist eine Beispiel-Anfrage, wenn die Nachricht gesendet wird.
Aber Sie brauchen nicht zu entschlüsseln, um NSUTF8StringEncoding in iOS.Denn laut der apple Dokumentation Dekodieren 5-Kodierungen.
InformationsquelleAutor Chathuranga Silva