2

我正在使用下面的代码:

AVMetadataItem *item = [self.player.metaData objectAtIndex:0];
NSLog("%@", item.stringValue);

它适用于任何英文歌曲标题。但是,当我从 AVMetadataItem 获得俄语歌曲名称时:

ÐÐÐÐРÐЯ - ÐРСÐРÐÐÐТÐÐУ // СÐУШÐЮТ: 1585

我怎样才能得到类似的东西:

Тратата - мы везем с собой кота.

任何帮助表示赞赏。

4

1 回答 1

1

尝试这个:

NSData *test = [item.stringValue dataUsingEncoding:NSISOLatin1StringEncoding allowLossyConversion:YES];
NSString *dataString = [[NSString alloc] initWithData:test encoding:NSUTF8StringEncoding];

我们从 UTF8 中的音频中获取元数据并且不知道它转换的 NSStringEncoding 所以我使用:

for (i = 0; i < 15; i++) {
   NSData *test = [item.stringValue dataUsingEncoding:i allowLossyConversion:YES];
   NSString *dataString = [[NSString alloc] initWithData:test encoding:NSUTF8StringEncoding];
}

看起来像 ISOLatin 中的 iOS 编码 Cyrillic(UTF8)。

于 2015-11-24T12:46:57.367 回答