проблема чтения шестнадцатеричных значений из файла с NSString или NSData - PullRequest
0 голосов
/ 28 сентября 2011

У меня есть файл, из которого мне нужно получить некоторые данные, но я только получаю ноль, когда читаю его.

файл содержит

K vU™"3Dô 
U0?*

шестнадцатеричные значения

1B 1B 01 1B 4B 07 20 1B 76 02 06 55 AA 11 22 33 44 99 20 0A 1B 55 30 1B 1B 3F 0C 1B 2A 01 0C 0C

Я пытался прочитать файл несколькими способами, но всегда получаю ноль, когда превращаю его в строку.

NSData *textData = [[NSData alloc] initWithContentsOfFile:filename];

NSLog(@"%@",[textData description]);
//prints out <1b1b011b 4b07201b 76020655 aa112233 4499200a 1b55301b 1b3f0c1b 2a010c0c>

text = [[NSString alloc] initWithData:textData encoding:NSUTF8StringEncoding];
//at this point text is nil

text = [[NSString alloc] initWithContentsOfFile:filename encoding:NSUTF8StringEncoding error:err];
//at this point text is still nil

text = [NSString stringWithContentsOfFile:filename encoding:NSUTF8StringEncoding error:err];
//at this point text is still nil

Я знаю, что он читает файл.Я могу распечатать атрибуты и посмотреть, что в нем указан размер 30. Что я пропустил / что я делаю не так?

Ответы [ 2 ]

1 голос
/ 28 сентября 2011

Ваш файл, вероятно, просто не закодирован в UTF8. Вот почему попытка интерпретировать данные в какую-то строку UTF8 не удалась.

Вы уверены, что это не UTF-16 (LE или BE) или какая-либо другая кодировка? (или, может быть, просто ASCII - с некоторыми непечатными символами)

0 голосов
/ 28 сентября 2011

Как насчет text = [[NSString alloc] initWithString:[textData description]];? :)

...