正确编码iOS中的ID3标签

我想在我的项目中从一堆mp3文件中获取ID3标签。

AudioFileGetProperty(audioFile, kAudioFilePropertyInfoDictionary, &size, &metadataDictionary); 

如果标记不包含西里尔符号,则输出在设备上看起来正常。 但是我有时会得到像这样的值:

 album = "\U00ce\U00f2\U00ea\U00f0\U00fb\U00f2\U00ee\U00e5 \U00d0\U00e0\U00e4\U00e8\U00ee 102.5FM"; "approximate duration in seconds" = "260.623"; 

它导致扭曲的符号显示( http://d.pr/i/X9wG )。

有没有办法将这些符号解码为可读forms? 我已经试过了

 NSString* value = [metadataDictionary objectForKey: key]; NSData* data = [value dataUsingEncoding: NSASCIIStringEncoding]; NSString* string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding]; 

但结果保持不变。

任何帮助将不胜感激!

[UPDATE]

我倾向于尝试在这个SO答案中提供的解决方案,但还有其他方法吗?

这是将这些符号解码为可读forms的方法:

 NSString *value = [metadataDictionary objectForKey:@"artist"]; const char *cString = [value cStringUsingEncoding:NSWindowsCP1252StringEncoding]; NSString *artist = [NSString stringWithCString:cString encoding:NSWindowsCP1251StringEncoding];