NSString Length - Sonderzeichen

8

Ich habe ein UITextField , in das Benutzer Zeichen eingeben. Es ist so einfach wie, wie kann ich die tatsächliche Länge zurückgeben? Wenn die Zeichenfolge A-Z 1-9 Zeichen enthält, funktioniert es wie erwartet, aber alle Emoji oder Sonderzeichen werden doppelt gezählt.

In seinem einfachsten Format hat dies nur eine Zuweisung von 2 Zeichen für einige Sonderzeichen wie Emoji:

%Vor%

Ich habe versucht, jedes Zeichen mit characterAtIndex , substringFromIndex usw. durchzuschleifen und habe nichts erreicht.

Wie in der Antwort unten angegeben, wird der genaue Code verwendet, um Zeichen zu zählen (hoffe, dies ist der richtige Ansatz, aber es funktioniert ..):

%Vor%     
Ralphonzo 05.05.2012, 12:21
quelle

2 Antworten

12

Das [myTextBox.text length] gibt die Anzahl der Unichars und nicht die sichtbare Länge des Strings zurück. é = e+´ , das sind 2 Unichars. Die Emoji-Zeichen sollten mehr 1 Unichar enthalten.

In diesem Beispiel wird durch jeden Zeichenblock in der Zeichenfolge aufgelistet. Das heißt, wenn Sie den Bereich von substringRange protokollieren, kann er länger als 1 sein.

%Vor%

Sie sollten sich die Session 128 - Advance Text Processing von 2011 WWDC anschauen. Sie erklären, warum es so ist. Es ist wirklich großartig!

Ich hoffe, das war zu irgendeiner Hilfe.
Prost!

    
hellozimi 05.05.2012, 13:17
quelle
0

Wir können die folgende Option auch als Lösung betrachten

%Vor%

Dies funktioniert mit speziellen Zeichen und Emoji

    
Raj 04.04.2016 01:42
quelle