Во-первых, я не совсем уверен, что происходит, и достаточно ли я понимаю это, чтобы описать проблему, поэтому я постараюсь изо всех сил.
Я кодирую объект NSData, который содержит json, а один из объектов содержит символ степени. Мы считаем, что это вызывает проблему, и хотели бы удалить ее перед кодированием, поскольку проблема возникает во время кодирования.
У меня есть множество вариантов удаления определенных символов из строк, но нет возможности сделать это из самого объекта NSData. Интересно, возможно ли это вообще или проблема в том, как я уже это кодирую.
Вот как объект NSData кодируется и превращается обратно в объект NSData, чтобы сериализовать его в json. Прямо сейчас я не пытаюсь удалить символ степени, используя латиницу 1, потому что я хочу использовать другой символ, но он мне не нужен, это, вероятно, не лучший способ сделать, но он работает для большинства других объектов данных, которые проходят через это просто не этот, так что это нужно изменить.
NSString* stringISOLatin1 = [NSString stringWithCString:data.bytes encoding:NSISOLatin1StringEncoding];
NSData* dataUTF8 = [stringISOLatin1 dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
Результаты немного странные, в большинстве случаев все работает нормально, даже включая символ градуса в тексте при отображении на экране. В других случаях после кодирования строка возвращается в конце испорченной, что делает ее невозможной сериализации.
Любая помощь будет оценена, даже если она просто приведет к лучшему объяснению того, что происходит. Спасибо