Любой способ удалить часть спецификации, когда NSData имеет много спецификации внутри (Objective-c) - PullRequest
3 голосов
/ 07 сентября 2011

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

Но если вы используете метод dataUsingEncoding NSData, он добавитспецификация, если для кодировки требуется одна. Так, если вы используете этот метод несколько раз и добавляете эти данные вместе в качестве выходных данных и записываете их в файл, то файл будет содержать несколько спецификаций. И спецификации, кроме первой, будутчасть данных.

Например:

NSMutableData *data = [NSMutableData data];
[data appendData:[@"abc" dataUsingEncoding:NSUTF16StringEncoding]];
[data appendData:[@"123" dataUsingEncoding:NSUTF16StringEncoding]];
[data appendData:[@"qwe" dataUsingEncoding:NSUTF16StringEncoding]];
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF16StringEncoding];

Тогда str будет выглядеть так:NSLog сделал с выводом).

Но я хочу, чтобы str был точно abc123qwe, есть ли какой-нибудь элегантный способ устранить эти спецификации?Или я могу просто проверить строку и вручную удалить всю спецификацию?

...