[ios] NSString 값을 NSData로 어떻게 변환합니까?

NSString값을 NSData어떻게 변환 합니까?



답변

NSString* str = @"teststring";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];


답변

NSString *str = @"helowrld";
// This converts the string to an NSData object
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

링크 에서 참조 할 수 있습니다


답변

하다:

NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];

그런 다음 계속 진행하십시오 NSJSONSerialization:JSONObjectWithData.


NULL 종료 자 관련 답변 수정

의견, 공식 문서 및 검증 에 따라이 답변은 NULL 종결 자 제거와 관련하여 업데이트되었습니다.

  1. dataUsingEncoding에 의해 문서화 된 바와 같이 :

    반환 값

    dataUsingEncoding:allowLossyConversion:두 번째 인수로 NO 를 호출 한 결과

  2. getCString : maxLength : encoding :cStringUsingEncoding :에 의해 문서화되어 있습니다 .

    반환 된 데이터 는 NULL 종결자가 없기dataUsingEncoding:allowLossyConversion: 때문에 엄격한 C- 문자열 이 아닙니다.


답변

스위프트 개발자가 여기 오면

NSString / String에서 NSData로 변환

var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding)


답변

목표 -C :

NSString *str = @"test string";
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:str];
NSString *thatStr = [NSKeyedUnarchiver unarchiveObjectWithData:data];

빠른:

let str = "test string"
let data = NSKeyedArchiver.archivedData(withRootObject: str)
let thatStr = NSKeyedUnarchiver.unarchiveObject(with: data) as! String


답변

먼저, dataUsingEncoding:대신 에을 사용해야 합니다 UTF8String. 해당 인코딩에 문자열 UTF8String이 필요한 경우 에만 사용하십시오 C.

그런 다음 메시지 대신 메시지를 UTF-16전달 하십시오 .NSUnicodeStringEncodingNSUTF8StringEncodingdataUsingEncoding:


답변

Swift 3의 경우 주로에서로 변환 String됩니다 Data.

let myString = "test"
let myData = myString.data(using: .utf8)
print(myData) // Optional(Data)