我正在尝试使用以下编码修复程序崩溃:
// 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'
感谢您的帮助
答案 0 :(得分:2)
您似乎认为必须进行双重转换才能获得正确的结果。它不是,也不可能(这就是为什么对cStringUsingEncoding:NSISOLatin1StringEncoding
的调用返回NULL
)。只需将此部分保留下来并直接分配给correctStringTitle
。
答案 1 :(得分:0)
在尝试从html和我的解决方案中获取文本时,我遇到了与意大利语重音字符相同的问题,以避免cStringUsingEncoding:NSISOLatin1StringEncoding
返回NULL
的情况确保当您从使用的数据中获取html时:
[[NSString alloc] initWithData:self.responseData encoding:NSISOLatin1StringEncoding]
而不是
encoding:NSUTF8StringEncoding