Использование неподходящего метода кодирования и декодирования base64 может уронить ваше приложение ⚠️
Если вы используете функцию кодирования в base64 btoa() и в неё может попасть текст, который вы не контролируете (пользовательский ввод), попробуйте ввести туда кириллицу или, например, эмодзи, скорее всего вы получите ошибку в консоли:
Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
Виной всему Unicode Problem (документация)
В документации хорошо описано как решить данную проблему в обе стороны (для декодирования atob() она тоже актуальна). Суть решения в том, чтобы представить строку побайтово, перед тем как запускать процесс кодирования
После этого мы уверены, что ошибок не будет, что бы не ввёл пользователь 👨🏻💻
#заметки
Если вы используете функцию кодирования в base64 btoa() и в неё может попасть текст, который вы не контролируете (пользовательский ввод), попробуйте ввести туда кириллицу или, например, эмодзи, скорее всего вы получите ошибку в консоли:
Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
Виной всему Unicode Problem (документация)
В документации хорошо описано как решить данную проблему в обе стороны (для декодирования atob() она тоже актуальна). Суть решения в том, чтобы представить строку побайтово, перед тем как запускать процесс кодирования
После этого мы уверены, что ошибок не будет, что бы не ввёл пользователь 👨🏻💻
#заметки