Преобразование NSString в NSDAta - PullRequest
       0

Преобразование NSString в NSDAta

0 голосов
/ 11 сентября 2010

в моем проекте я хочу преобразовать значение NSString в NSdata без кодирования, т.е. я использую

NSData* aData = [[NSData alloc] initWithData:[[self getStringValue] dataUsingEncoding:NSUTF8StringEncoding]];

когда я использую это, строковое значение закодировано, но я хочу такое же строковое значение без кодирования. Как я могу получить это

Спасибо

Ответы [ 3 ]

1 голос
/ 11 сентября 2010

Вам всегда нужно будет выбирать кодировку какого-либо типа. Я всегда рекомендую NSUTF8StringEncoding. Но если вам нужны только необработанные символьные байты, а не кодировка UTF8, это ваши лучшие варианты.

// for latin/english only characters
NSData* aData = [self dataUsingEncoding:NSACSIIStringEncoding];

// for international characters
NSData* aData = [self dataUsingEncoding:NSUnicodeStringEncoding]; 
0 голосов
/ 19 июня 2015

Чтобы преобразовать строку как есть, используйте следующий код:

-(NSData*)getDataFromString:(NSString*)theString
{
    NSMutableData *mData = [NSMutableData data];
    unsigned value;
    NSScanner *scanner = [NSScanner scannerWithString:theString];
    while(![scanner isAtEnd]) {
        [scanner scanHexInt:&value];
        value = htonl(value);
        [mData appendBytes:&value length:sizeof(value)];
    }

    return [NSData dataWithData:mData];
}

И для вызова этой функции:

NSData *data = [self getDataFromString:@"Your_String"];
0 голосов
/ 11 сентября 2010

Вам нужна кодировка, иначе она не будет работать.Он должен знать, в каком формате хранится строка. Он должен знать, в каком формате хранятся байты. Однако вам, вероятно, следует использовать NSACSIIStringEncoding.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...