Các tài liệu cho NSString
nói
https://developer.apple.com/documentation/foundation/nsstring/1416374-initwithdata
Giá trị trả về Một đối tượng NSString được khởi tạo bằng cách chuyển đổi các byte trong dữ liệu thành các ký tự Unicode bằng cách sử dụng mã hóa. Đối tượng trả về có thể khác với đối tượng nhận ban đầu. Trả về nil nếu quá trình khởi tạo không thành công vì lý do nào đó (ví dụ: nếu dữ liệu không đại diện cho dữ liệu hợp lệ để mã hóa).
Bạn nên thử mã hóa khác để kiểm tra xem nó có giải quyết được vấn đề của bạn không
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
};