iOS中data转字符串用GB2312编码格式,怎么替换掉data中非GB2312的字符

NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *utf8str = [[NSString alloc] initWithData:self.data encoding:enc];

            代码是这样, utf8str是nil,应该是因为self.data中有非gb2312的字符导致的, 怎么能解决啊  ,急急急 ,求大腿大神帮助
 NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
    return [input dataUsingEncoding:enc allowLossyConversion:true];