0

我正在尝试实施以下编码修复程序崩溃:

  // encoding fix
    NSString *correctStringTitle = [NSString stringWithCString:[[item objectForKey:@"main_tag"] cStringUsingEncoding:NSISOLatin1StringEncoding] encoding:NSUTF8StringEncoding];

    cell.titleLabel.text = [correctStringTitle capitalizedString];

我的崩溃日志输出状态:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSString stringWithCString:encoding:]: NULL cString'

谢谢你的帮助

4

2 回答 2

2

您似乎认为必须进行双重转换才能获得正确的结果。它不是,也不可能(这就是调用cStringUsingEncoding:NSISOLatin1StringEncoding返回的原因NULL)。只需将此部分省略并correctStringTitle直接分配给。

于 2013-02-03T15:02:51.713 回答
0

在尝试从 html 中获取文本时,我遇到了与意大利语重音字符相同的问题,我的解决方案以避免cStringUsingEncoding:NSISOLatin1StringEncoding返回的情况NULL是确保当您从使用的数据中获取 html 时:

[[NSString alloc] initWithData:self.responseData encoding:NSISOLatin1StringEncoding]

并不是

encoding:NSUTF8StringEncoding
于 2013-07-02T10:39:10.190 回答