正确编码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];
- 如何在iOS上使用AVMutableComposition和CALayers
- 在Parse iOS中更新保存的数据
- 在iPhone 3GS和iPhone 4上embeddedMobile Safari的HTML5video
- 如何在iPhone中使用AudioBuffer在本地录制从麦克风录制的audio文件?
- 用导航栏和后退button创build一个模态视图
- 如何检测自定义的UITableviewCell中的滑动删除手势?
- 当应用程序在后台运行时,在iOS应用程序的locking屏幕上添加图像
- 如何同步2个或更多ios设备上的audio
- 如何取消用addOperationWithBlock创build的操作?