我想把NSData转换成NSString..最好的方法是什么?
我正在使用此代码,但最终字符串返回NULL
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",str);
当我看到Console时,它将打印空.
我想把NSData转换成NSString..最好的方法是什么?
我正在使用此代码,但最终字符串返回NULL
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",str);
当我看到Console时,它将打印空.
NSString
的doctor 说
https://developer.apple.com/documentation/foundation/nsstring/1416374-initwithdata个
返回值为NSString对象 通过将 使用将数据转换为Unicode字符 编码.返回的对象可以是 与原来的接收器不同. 如果初始化,则返回nil 由于某种原因而失败(例如,如果 数据不代表以下项目的有效数据 编码).
你应该try 其他编码来判断它是否解决了你的问题
// The following constants are provided by NSString as possible string encodings.
enum {
NSASCIIStringEncoding = 1,
NSNEXTSTEPStringEncoding = 2,
NSJapaneseEUCStringEncoding = 3,
NSUTF8StringEncoding = 4,
NSISOLatin1StringEncoding = 5,
NSSymbolStringEncoding = 6,
NSNonLossyASCIIStringEncoding = 7,
NSShiftJISStringEncoding = 8,
NSISOLatin2StringEncoding = 9,
NSUnicodeStringEncoding = 10,
NSWindowsCP1251StringEncoding = 11,
NSWindowsCP1252StringEncoding = 12,
NSWindowsCP1253StringEncoding = 13,
NSWindowsCP1254StringEncoding = 14,
NSWindowsCP1250StringEncoding = 15,
NSISO2022JPStringEncoding = 21,
NSMacOSRomanStringEncoding = 30,
NSUTF16StringEncoding = NSUnicodeStringEncoding,
NSUTF16BigEndianStringEncoding = 0x90000100,
NSUTF16LittleEndianStringEncoding = 0x94000100,
NSUTF32StringEncoding = 0x8c000100,
NSUTF32BigEndianStringEncoding = 0x98000100,
NSUTF32LittleEndianStringEncoding = 0x9c000100,
NSProprietaryStringEncoding = 65536
};