Добрый день.
Разрабатываю приложение с возможностью чтения qr-code. Столкнулся с проблемой когда в ar-code были закодированы символы в кодировке cp1251.
забираю строку из ar-code так
NSString *scannedResult = [(AVMetadataMachineReadableCodeObject *)current stringValue];
но она уже содержит не верную кодировку русских символов. После этого пытаюсь перевести строку в NSData а потом в строку с UTF8. Но объект NSData = nil, такое чувство что переменная уже хранится в формате UTF8 но с битыми символами. Т.к. когда декодирую в байты эту строку с кодировкой UTF8 то массив заполняется байтами.
Подскажите как можно
1. Определить в какой кодировке символы в строке (т.к. когда читаю строку в UTF8 проблем нет)
2. Если символы в cp1251 произвести ее перекодирование в UTF8
NSData *dt = [scannedResult dataUsingEncoding:NSWindowsCP1251StringEncoding];//dt = nil
scannedResult = [[NSString alloc] initWithData:dt encoding:NSUTF8StringEncoding];
NSData *dt = [scannedResult dataUsingEncoding:NSUTF8StringEncoding];//dt с байтами
scannedResult = [[NSString alloc] initWithData:dt encoding:NSUTF8StringEncoding];