iOS NSString в UTF16

У меня есть строка, которую я получил с сервера Apache через HTTP:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    ...

Мне нужно преобразовать эту строку в строку UTF16. Я не хочу превращать его в NSData. Мне нужно сохранить его NSString, и мне нужно, чтобы он был в UTF16. Я был бы рад поместить его даже в объект NSData, если бы мог сделать это как UTF16. Я делаю что-то подобное сейчас:

[self.returnedData appendData:data];

Но это все еще передает его как UTF8. Это, вероятно, просто, и я скучаю по нему. Но я не нашел его ни в документах Apple, ни на этом сайте, и мой Google-Fu подвел меня. Что мне не хватает? Как мне это сделать? Спасибо за ваше время и помощь.

РЕДАКТИРОВАТЬ: В порядке. Все, что вы с Джастином сказали, имеет смысл и придает еще больше смысла. Вот что я делаю. Это кажется правильным из этой строки, но я хотел убедиться, что правильно вас понимаю.

NSData *resultData = [self. result dataUsingEncoding:NSUTF16LittleEndianStringEncoding];
NSString *resultStr = [[NSString alloc] initWithData:resultData encoding:NSUTF16LittleEndianStringEncoding];
NSString *md5Result = [[NSString stringWithFormat:@"%@",[resultStr MD5]] uppercaseString];
NSLog(@"md5Result = %@",md5Result);

Последняя часть — это то, что я делаю со строкой после кодировки UTF-16. У меня есть категория, которая делает ее шестнадцатеричной строкой MD5, похожей на http://blog.blackwhale.at/?tag=hmac Еще раз спасибо. Я ударю вас обоих и скажу, что это правильный ответ.

0
задан addzo 8 March 2012 в 15:57
поделиться