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 종결 자 제거와 관련하여 업데이트되었습니다.
-
dataUsingEncoding에 의해 문서화 된 바와 같이 :
반환 값
dataUsingEncoding:allowLossyConversion:
두 번째 인수로 NO 를 호출 한 결과 -
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
전달 하십시오 .NSUnicodeStringEncoding
NSUTF8StringEncoding
dataUsingEncoding:
답변
Swift 3의 경우 주로에서로 변환 String
됩니다 Data
.
let myString = "test"
let myData = myString.data(using: .utf8)
print(myData) // Optional(Data)