NSString mit Unicode-Problem vom Webdienst
Ich habe versucht, in Stackoverflow zu suchen. Aber ich konnte nicht die richtige Lösung finden. Kann mir bitte jemand helfen?
Ich habe diese Daten von einem Webservice.
KEY: 1036 TYPE: string VALUE = French (fran\u00E7aise)
KEY: 1032 TYPE: string VALUE = Greek (\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC)
Weiß jemand, wie man diese Unicode-Zeichenfolge richtig druckt? Ich habe versucht, es zu codieren und zu decodieren (wie unten gezeigt). Aber es funktioniert nicht. :(
NSString *value = [NSString stringWithFormat:@"%@", t.dataValue];
NSData *bytes = [message dataUsingEncoding:NSUTF8StringEncoding];
NSString* messageDecoded = [[NSString alloc] initWithData:bytes encoding:NSUTF8StringEncoding];
NSLog(@"decoded: %@", messageDecoded);
Vielen Dank im Voraus Jungs!
ANTWORTEN:Darauf habe ich eine Antwort bekommenVerknüpfung:
NSString* input = @"ab\"cA\"BC\\u2345\\u0123";
// will cause trouble if you have "abc\\\\uvw"
NSString* esc1 = [input stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];
NSString* esc2 = [esc1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
NSString* quoted = [[@"\"" stringByAppendingString:esc2] stringByAppendingString:@"\""];
NSData* data = [quoted dataUsingEncoding:NSUTF8StringEncoding];
NSString* unesc = [NSPropertyListSerialization propertyListFromData:data
mutabilityOption:NSPropertyListImmutable format:NULL
errorDescription:NULL];
assert([unesc isKindOfClass:[NSString class]]);
NSLog(@"Output = %@", unesc);