У меня есть строка, которую я получил с сервера 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 Еще раз спасибо.Я ударю вас обоих и скажу, что это правильный ответ.