歌曲标题按流错误编码

时间:2017-05-26 08:49:07

标签: ios objective-c nsstring

我正在为ios开发一个简单的无线电流应用程序。我正在用KVO观察:

重温歌曲冠军
if ([keyPath isEqualToString:@"timedMetadata"])
    {

        for (AVMetadataItem* metadata in playerItem.timedMetadata)
        {
            if([metadata.commonKey isEqualToString:@"title"]){


            }
        }
    }

使用此代码我可以获得标题。无论如何,有一些特征,我有这个结果:

deep grounder feat virÃ;g

而不是

deep grounder feat viràg

所以我正在尝试任何解决方案在屏幕上打印正确的结果。我也尝试过:

NSString *StringaPassata=[NSString stringWithFormat:@"%@",@"deep grounder feat virÃ;g"];               
NSData *data = [stringFromUTFString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];               NSString *newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

字符串保持不变...我无法控制输出流的服务器。为了测试转换,我在NSString中存储了从服务器下载时导致问题的字符串。 我如何将字符串转换为正确的“à”?

1 个答案:

答案 0 :(得分:0)

试试这个片段我试过了

NSString *strYourKey = @"deep grounder feat viràg";
NSData *data = [strYourKey dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *dataToString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"Your Converted Text is : %@", dataToString);

输出

[12134:168898] Your Converted Text is : deep grounder feat virag