Я пытаюсь понять, каковы требования к входным данным для кодирования base64.У Николаса Закаса, к которому я испытываю огромное уважение, есть статья, в которой он цитирует спецификацию о том, что должна быть выдана ошибка, если на входе содержится какой-либо символ с кодом выше 255 Статья Закаса на base64
Прежде чем даже пытаться закодировать строку в base64, вы должны проверить, содержит ли строка только символы ASCII.Поскольку для кодирования base64 требуется восемь бит на входной символ, любой символ с кодом выше 255 не может быть точно представлен.В спецификации указывается, что в этом случае следует выдать ошибку:
if (/([^\u0000-\u00ff])/.test(text)){
throw new Error("Can't base64 encode non-ASCII characters.");
}
В другой отдельной части статьи он предоставляет ссылку на RFC 3548 , но я неНе вижу никаких входных требований, кроме:
Реализации ДОЛЖНЫ отклонять кодировку, если она содержит символы вне основного алфавита при интерпретации данных, закодированных в базовом коде, если в спецификации, ссылающейся на этот документ, не указано иное.
Не уверен, что означает "базовый алфавит", но, возможно, это то, о чем говорит Закас.Но, говоря, что они должны отказаться от кодирования, кажется, подразумевает, что это то, что уже закодированы в отличие от входа (если, конечно, вход недопустим он также будет отображаться в кодировке поэтому, возможно, точка является спорным).
Немного запутался в том, что такое стандарт.