NSString с проблемой Unicode из веб-службы
Я пытался искать в Stackoverflow. Но я не мог получить правильное решение. Может кто-нибудь, пожалуйста, помогите мне?
У меня есть эти данные из веб-службы.
KEY: 1036 TYPE: string VALUE = French (fran\u00E7aise)
KEY: 1032 TYPE: string VALUE = Greek (\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC)
Кто-нибудь знает, как правильно распечатать эту строку Unicode? Я попытался закодировать и декодировать его обратно (как показано ниже). Но это не работает. :(
NSString *value = [NSString stringWithFormat:@"%@", t.dataValue];
NSData *bytes = [message dataUsingEncoding:NSUTF8StringEncoding];
NSString* messageDecoded = [[NSString alloc] initWithData:bytes encoding:NSUTF8StringEncoding];
NSLog(@"decoded: %@", messageDecoded);
Заранее спасибо, ребята!
ANSWER:Я получил ответ от этогоссылка на сайт:
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);