Konvertierung entging UTF8-kodierten Zeichen wieder in Ihre ursprüngliche form

Ich versuche zu Lesen, strings aus einem array, die aus einer plist und drucken Sie diese Zeichenfolgen.

Die strings im array enthalten entgangen UTF8 - Zeichen, beispielsweise "Nuša Florjančič" wird "Nu\u0161a Florjan\u010di\u010d" beim Lesen aus der plist. Es gibt keinen Weg, um zu ändern den Inhalt der plist, aber mein Programm braucht, um die Namen anzeigen zu richtig.

Das merkwürdige ist, dass Objective-C scheint dies automatisch tun, wenn ich bin hart codierten string. Jedoch, wenn ich den string aus der plist nichts passiert.

Ihnen ein Beispiel zu geben, hier einige code:

NSString *name1 = @"Nu\u0161a Florjan\u010di\u010d";
NSString *name2 = [list objectAtIndex:0];       
NSLog(@"name 1: %@", name1);
NSLog(@"name 2: %@", name2);

[list objectAtIndex:0] enthält @"Nu\u0161a Florjan\u010di\u010d" - der einzige Unterschied ist, dass es wurde eingestellt über den plist-editor.

Die Ausgabe in der Konsole ist:

2011-10-22 18:00:02.595 Test[13410:11c03] name 1: Nuša Florjančič
2011-10-22 18:00:02.595 Test[13410:11c03] name 2: Nu\u0161a Florjan\u010di\u010d

Ich habe versucht, alle möglichen Dinge, einschließlich die Umwandlung der string in einen C-string und dann die Erstellung einer NSString Objekt mit einer UTF-8-Codierung, aber nichts funktionierte überhaupt.

Ich würde wirklich zu schätzen alle Hinweise von Ihnen, die helfen könnten, mir bei der Lösung dieses scheinbar Banale problem.

InformationsquelleAutor der Frage Tobi | 2011-10-22

Schreibe einen Kommentar