我正在尝试从我的项目中的一堆 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)。
有没有办法将这些符号解码成可读的形式?我已经试过了
NSString* value = [metadataDictionary objectForKey: key];
NSData* data = [value dataUsingEncoding: NSASCIIStringEncoding];
NSString* string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
但结果保持不变。
任何帮助将不胜感激!
[更新]
我倾向于尝试这个 SO answer中提供的解决方案,但是还有其他方法吗?