2009-08-17 37 views
8

Tôi có dòng mã này để chuyển đổi NSString để NSData:Làm cách nào để chuyển đổi NSString thành NSData?

NSData *data = [NSData dataWithBytes:[message UTF8String] length:[message lengthOfBytesUsingEncoding:NSUTF8StringEncoding]]; 

Làm thế nào để làm điều này trong Unicode thay vì UTF8? Tin nhắn của tôi có thể chứa các ký tự cyrillic hoặc dấu phụ.

+1

Xác định "Unicode". Nó không phải là một mã hóa (không nghiêm túc nói ít nhất). UTF-8 hoàn toàn có khả năng mã hóa tất cả các ký tự Unicode, vì vậy nó phải đủ để bạn sử dụng. –

+0

NSUnicodeStringEncoding –

Trả lời

18

Trước hết, bạn nên sử dụng dataUsingEncoding: thay vì đi qua UTF8String. Bạn chỉ sử dụng UTF8String khi bạn cần chuỗi C trong mã hóa đó.

Sau đó, đối với “Unicode” (cụ thể là UTF-16), chỉ cần chuyển NSUnicodeStringEncoding thay vì NSUTF8StringEncoding trong thông báo dataUsingEncoding: của bạn.

+1

cảm ơn! Tôi bằng cách nào đó bị mất dataUsingEncoding trong tài liệu. –

Các vấn đề liên quan