Я пишу программу, которая преобразует NSData в NSString с многобайтовой кодировкой.
Само преобразование легко, но проблема в том, что NSData поступает отдельно (данные поступают в порядке).
Это как
- (void) dataArrived:(NSData*) data{
NSString* mystr = [[[NSString alloc] initWithData:data encoding:NSShiftJISStringEncoding] autorelease];
// I want to parse string here and show some view as it arrives.
}
Если данные содержат только 8-битные буквы, это нормально, но я анализирую многобайтовые строковые данные. Поэтому я хочу преобразовать NSData в NSString из заголовка и сохранить недопустимые байты для следующего вызова dataArrived (последний 1 байт может быть оставлен как недопустимый байт для NSShiftJISStringEncoding, поскольку буква SJIS составляет 1 или 2 байта).
Интересно, есть ли у них какой-либо полезный метод или функция для этого?
Идеальный метод может принимать NSData и Encoding и возвращать позицию, в которой он находит недопустимую последовательность байтов в NSData.