Nemozar
@Nemozar
Php developer

Objective-c qr-code в кодировке cp1251, как конвертировать в UFT8?

Добрый день.

Разрабатываю приложение с возможностью чтения 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];
  • Вопрос задан
  • 299 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы