У меня проблема с atob
, который выдает исключение
Неправильно закодирована строка, которую нужно декодировать.
Уже есть некоторые вопросы, например это при переполнении стека, но они имеют дело со «сложными» проблемами (кодировка файла и / или URL), мой код намного проще:
atob("MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA");
при длине строки 41, я пытался добавить 0,1,2 или 3 "=" безуспешно.
Ожидаемый результат (возвращаемый любым онлайн-декодером base64, который я тестировал) - простая строка:
0.05813049898 0.05554189906 1
Я попытался dGVzdA==
или dGVzdA
, и он правильно расшифрован как "тест".
Так в чем же очевидная проблема, за которую мне должно быть стыдно?
Если это имеет значение, я работает Chromium 81.
PS: я просто закодировал строку обратно (почему я не подумал об этом первым?). И похоже, что закодированная строка должна быть
MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDE=
, которая прекрасно декодируется.
atob("MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDE=");
PS2: atob работает просто отлично. Это просто входная строка (и Apple), которая виновата в соответствии с http://www.monobjc.net/xib-file-format.html. Поэтому, если файл ile file.length% 4 == 1, я думаю, что ответ - просто удалить последний символ. 2 или 3 я не знаю