【问题标题】:Objective-c parse api response special charactersObjective-c 解析api响应特殊字符
【发布时间】:2014-11-05 03:35:44
【问题描述】:

我正在向 API 发出请求,这是接收返回的 NSData:

{"word":"Ma\u00f1ana reposado"}

我试图用这些数据显示一个标签,但是当我解析它时:

NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:1 error:&error];

[json ObjectForKey:@"word"] = "Ma?ana reposado" 中的 NSString*

解编码 NSData 的正确方法是什么?

【问题讨论】:

    标签: objective-c encoding special-characters nsdata nsjsonserialization


    【解决方案1】:

    如果数据不是以null结尾的,使用initWithData:encoding

      NSString* yourNSString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
    

    如果数据以空值结尾,请使用 stringWithUTF8String: 以避免末尾的额外 \0(NUL 终止符)

      NSString* yourNSString = [NSString stringWithUTF8String:[responseData bytes]];
    

    【讨论】:

    • 我试了一下,结果是“Ma\u00f1ana reposado”
    • 我现在试了一下,它们是 unicode (LATIN SMALL LETTER N WITH TILDE) 格式是正确的,把它们放在 UILabel 或其他东西上,它们就会如你所愿地出现。我尝试并得到了输出: Mañana reposado
    猜你喜欢
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多