Почему Javascript 'atob ()` и' btoa () ' были названы так?
В Javascript,window.atob() метод декодирует a base64 строку и window.btoa() метод кодирует a string на base64.
тогда почему они не были названы как base64Decode() и base64Encode()?
atob() и btoa() не имеет смысла, потому что они вообще не семантические.
Я хочу знать причину.
4 ответов:
The
atob()иbtoa()методы позволяют авторам преобразовывать содержимое в кодировку base64 и обратно.в этих API, для мнемонических целей, "b" можно считать стенд для "двоичный", и "а" для "ASCII". На практике, однако, для прежде всего исторические причины, как вход, так и выход из них функции-это строки Юникода.
чтобы подвести итог уже данным ответам:
atobрасшифровывается какASCII to binary
- например:
atob("ZXhhbXBsZSELCg==") == "example!^K"btoaрасшифровывается какbinary to ASCII
- например:
btoa("\x01\x02\xfe\xff") == "AQL+/w=="почему ASCII и binary:
ASCII(thea) является результатомbase64кодировка. А безопасное текст состоит только из подмножества символов ascii (*), которые могут быть правильно представлены и транспортированы (например, тело электронной почты),binary(theb) - это любой поток 0s и 1s (в javascript он должен быть представлен строковым типом).(*) в
base64они ограничены:A-Z,a-z,0-9,+,/и=(обивка, только в конце) https://en.wikipedia.org/wiki/Base64P. S. Я должен признаться, я сам был сначала смутило именования и думал, что имена поменялись местами. Я так и думал
bподставка для "bкодированная строка ase64" иaна "aНью-Йорк строку": D.
Я знаю, что это старый, но он недавно появился в Twitter, и я думал, что поделюсь им, поскольку он авторитетен.
Me:
@BrendanEich вы выбрали эти имена?
Он:
старые имена Unix, трудно найти справочные страницы rn, но см. https://www.unix.com/man-page/minix/1/btoa/ .... Имена перенесены из Unix в кодовую базу Netscape. Я отразил их в JS через большая спешка в 1995 году (после десяти дней в мае, но скоро).
в случае разрыва ссылки Minix, вот содержание man-страницы:
BTOA(1) BTOA(1) NAME btoa - binary to ascii conversion SYNOPSIS btoa [-adhor] [infile] [outfile] OPTIONS -a Decode, rather than encode, the file -d Extracts repair file from diagnosis file -h Help menu is displayed giving the options -o The obsolete algorithm is used for backward compatibility -r Repair a damaged file EXAMPLES btoa <a.out >a.btoa # Convert a.out to ASCII btoa -a <a.btoa >a.out # Reverse the above DESCRIPTION Btoa is a filter that converts a binary file to ascii for transmission over a telephone line. If two file names are provided, the first in used for input and the second for out- put. If only one is provided, it is used as the input file. The program is a function- ally similar alternative to uue/uud, but the encoding is completely different. Since both of these are widely used, both have been provided with MINIX. The file is expanded about 25 percent in the process. SEE ALSO uue(1), uud(1).источник: Брендан Эйч, создатель JavaScript. https://twitter.com/BrendanEich/status/998618208725684224
Я не могу найти источник на данный момент, но общеизвестно, что в этом случае b означает "двоичный", а a - "ASCII".
следовательно, функции являются на самом деле называется:
ASCII в двоичный для
atob(), и Двоичный код в ASCII дляbtoa().Примечание это реализация браузера, и был оставлен для устаревших / обратной совместимости целей. в узлах.js например, они не существуют.
Comments