Erkennen von Unicode-Zeichen in NSString auf dem iPhone
Arbeite ich auf eine SMS-Anwendung für das iPhone. Ich brauche, um zu erkennen, ob der Benutzer eingegeben hat, jedes beliebige unicode-Zeichen innerhalb der NSString, die Sie versenden möchten.
Ich brauche, dies zu tun ist, da unicode-Zeichen nehmen mehr Platz in der Nachricht, und auch, weil ich Sie konvertieren zu müssen in Ihre hexadezimalen Entsprechungen.
Also meine Frage ist wie erkenne ich das Vorhandensein eines unicode-Zeichen in ein NSString (die ich gelesen habe von einem UITextView). Auch, wie kann ich dann wandeln diese Zeichen in Ihre UCS‐2 hexadezimale äquivalente?
E. g 繁 = 7E41, 体 = 4F53, 中 = 4E2D, 文 = 6587
- alle Zeichen sind unicode
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen, für die nur ascii-Zeichen (oder eine andere Kodierung Ihrer Wahl) benutzen:
[myString canBeConvertedToEncoding:NSASCIIStringEncoding];
Wird es NICHT zurück, wenn der string enthält nicht-ascii-Zeichen. Sie können dann konvertieren Sie die Zeichenfolge in UCS-2-Daten mit:
[myString dataUsingEncoding:NSUTF16BigEndianStringEncoding];
oder NSUTF16LittleEndianStringEncoding abhängig von Ihrer Plattform. Es gibt leichte Unterschiede zwischen UCS-2 und UTF-16. UTF-16 hat die ersetzte UCS-2. Erfahren Sie mehr über die Unterschiede hier:
http://en.wikipedia.org/wiki/UTF-16/UCS-2
Konnte ich nicht ankommen dieses zu wirken.
Ich einen html-string mit
NON BREAKING SPACEVersuchte ich 3 Arten von encode/decode
keines dieser arbeitete.
Sie schien zu funktionieren, als ob ich NSLog der string sieht es ok aus
Die Ausgabe
aber ich zufällig zu speichern diese in ein NSArray und ich zufällig zu nennen
[stringArray description]
und alle unicode-war noch drinSo etwas in NSLog verbirgt
aber es zeigt sich in NSArray Beschreibung, so können Sie denken, dass Sie entfernt die Unicode-wenn Sie es nicht getan haben.Wird, versuchen Sie eine andere Methode, ersetzen Sie die Zeichen.