2016-05-05 11 views
0

SO,Convert Escaped Unicode in Unicode in Objective-c

Eine scheinbar einfache Frage hat mich ratlos. Ich habe zwei Aussagen:

NSLog(@"%@", @"\U0001f1ee\U0001f1f9"); 

NSLog(@"%@", @"\\U0001f1ee\\U0001f1f9"); 

Die erste gibt die richtige Emoji (Flag). Der zweite gibt eine Escape-Zeichenfolge aus. Welche Umwandlung muss ich mit der zweiten Zeichenkette machen, damit sie auch die Flagge ausgibt?

Mit anderen Worten: Ich habe Zeichenketten von Unicode, die ich als das richtige Emoji ausdrucken möchte. Wie würde ich das machen?

Ich versuchte, um zu konvertieren NSUTF8StringEncoding NSData und dann zurück zu NSString, versuchte ich mit NSNonLossyASCIIStringEncoding, keine Freude. Ich muss sie falsch benutzen ...

Danke für jede Hilfe!

+0

Bitte versuchen Sie NSString * name2escaped = @ "\ U0001f1ee \ U0001f1f9"; NSString * Name2 = [NSString StringWithCString: [Name2escaped cStringUsingEncoding: NSUTF8StringEncoding] Codierung: NSNonLossyASCIISTRingEncoding]; NSLog (@ "name2 =% @", name2); – Rajesh

+0

Das funktioniert nicht. Ich habe diesen Post aber schon gesehen. :( –

+0

Bitte versuchen Sie, dieses Problem zu lösen NSString * input = @ "\ U0001f1ee \ U0001f1f9" "; NSString * konvertierteString = [Eingang mutableCopy]; CFStringRef-Transformation = CFSTR (" Any-Hex/Java "); CFStringTransform ((__ Brücke CFMutableStringRef) konvertierteString, NULL, Transformation, YES); NSLog (@ "convertedString:% @", konvertierteString); – Rajesh

Antwort

0

Einfach. Verwenden Sie -stringByRemovingPercentEncoding.

NSString * string = @"\\U0001f1ee\\U0001f1f9" ; 
NSLog(@"%@", [string stringByRemovingPercentEncoding]); 
+0

Hmm das scheint nicht für mich zu funktionieren. Es druckt '' '\ U0001f1ee \ U0001f1f9''''' –