【问题标题】:Song title by stream wrong Encoding流错误编码的歌曲标题
【发布时间】:2017-05-26 08:49:06
【问题描述】:

我正在为 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 中。 如何将字符串转换为正确的“à”?

【问题讨论】:

    标签: ios objective-c nsstring


    【解决方案1】:

    试试这个片段我试过了

    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
    

    【讨论】:

    • 谢谢,但我必须转换的文本是“deep grounder feat virÃ;g”而不是“deep grounder feat viràg”
    • @user31929 你能描述一下你需要什么输出吗?输入:-“deep grounder feat virÃ;g”输出:-“deep grounder feat virA;g”(sn-p 输出)
    • 输入:-“deep grounder feat virÃ;g”输出:-“deep grounder feat viràg”
    猜你喜欢
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 2021-05-01
    相关资源
    最近更新 更多