首页 > NSData转NSString的一个问题

NSData转NSString的一个问题

从服务器那里得到NSData,要把它转成String。现在碰到的困难是这样的:服务器那里不知道有什么bug,导致返回的Data里面编码不一致(一般情况下所有返回的都是用GB18030编码的,有Bug的情况下,一个data里面有一部分是GB18030编码,一部分是UTF8编码)。网页碰到这个问题时,把UTF8部分变成乱码了,而手机端用NSData直接转string的话,返回的时nil。我现在希望把正常的一部分正常显示,乱码的一部分乱码显示,而不是返回一个nil该怎么办呢?(因为我们的网页和android客户端是可以显示出来的,所以QA认定是我们iOS客户端的问题)。


传的时候用base-64位传试一下


NSStringEncoding gbkEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

contents = [NSString stringWithContentsOfFile:path encoding:gbkEncoding error:nil];

试一下


不建议这样的做法,最好从根源上避免这种事情发生,坚持使用一致的编码。
如果一定要这样做的话,可以试一下修改报文格式,在头部分添加编码的起止字节数。

【热门文章】
【热门文章】