我只想知道是否有任何现有的类别或任何类型的函数可以从NSURLResponse对象中返回NSStringEncoding常量。
我目前面临的问题是,当我将web服务响应数据转换为字符串时,我已经将编码硬编码为NSUTF8StringEncoding,这实际上会导致问题,因为我的web服务有时会返回以UTF8编码的响应,有时也会以ASCII码编码(虽然我不太确定所有的编码,但在响应中有时会有其他语言的字符,如日语、中文等)。
所以我的想法是在NSURLResponse上建立一个类别来检测编码并返回例如。
NSURLResponse * response = // NSURLResponse object ( web service response headers )
NSData * responseData = // NSData object ( web service response data )
NSStringEncoding encoding = [response stringEncodingUsed];
NSString * responseText = [[NSString alloc]initWithData:responseData encoding:encoding];发布于 2013-11-10 10:04:49
有一个更好的方法。
您可以从URLResponse获取字符串形式的编码名称,然后搜索适当的NSStringEncoding。
NSString *encodingName = [aURLResponse textEncodingName];
NSStringEncoding encodingType = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)encodingName));此外,encodingName可能为nil,如果所提供的encodingName没有适当的结果,则encodingType变量的结果值将无效。
https://stackoverflow.com/questions/17836111
复制相似问题