programing

Javascript 'atob'과 'btoa'는 왜 그렇게 이름 붙여졌을까?

randomtip 2022. 9. 8. 21:30
반응형

Javascript 'atob'과 'btoa'는 왜 그렇게 이름 붙여졌을까?

Javascript입니다.window.atob()method는 base64 문자열을 디코딩하고window.btoa()는 「」를 .stringBase64로 변환합니다.

왜 붙이지 요?base64Decode() ★★★★★★★★★★★★★★★★★」base64Encode()무슨 일입니까?atob() ★★★★★★★★★★★★★★★★★」btoa()의미가 전혀 없기 때문에 말이 안 돼요

나는 그 이유를 알고 싶다.

atob() ★★★★★★★★★★★★★★★★★」btoa()메서드를 사용하면 작성자는 Base64 인코딩과의 사이에서 콘텐츠를 변환할 수 있습니다.

이러한 API에서는 니모닉을 위해 "b"는 "binary"를, "a"는 "ASCII"를 나타내는 것으로 간주할 수 있습니다.다만, 실제로는, 주로 과거의 이유로, 이러한 함수의 입력과 출력은 모두 Unicode 문자열입니다.

출처 : http://www.w3.org/TR/html/webappapis.html#atob

오래된 건 알지만 최근 트위터에 올라왔고, 권위적인 내용이라 공유해야겠다고 생각했습니다.

나:

@BrendanEich 당신이 고른 이름?

그 사람:

오래된 Unix 이름, man page rn은 찾기 어렵지만 https://www.unix.com/man-page/minix/1/btoa/을 참조하십시오.Unix에서 Netscape 코드 베이스로 이관된 이름.1995년 JS에 급하게 반영했습니다(5월 10일 후, 곧).

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를 만든 Brendan Eich 씨.https://twitter.com/BrendanEich/status/998618208725684224

지금까지의 답변을 정리하면, 다음과 같습니다.

  • atob for 의 약자ASCII to binary
    • ::atob("ZXhhbXBsZSELCg==") == "example!^K"
  • btoa for 의 약자binary to ASCII
    • ::btoa("\x01\x02\xfe\xff") == "AQL+/w=="

ASCII 및 바이너리가 필요한 이유:

  • ASCII(the)a입니다.base64부호화를 실시합니다.올바르게 표현 및 전송할 수 있는 ASCII 문자(*)의 하위 집합으로만 구성된 안전한 텍스트(: 이메일 본문),
  • binary(the)b)는 01의 스트림입니다(javascript에서는 문자열 타입으로 나타낼 필요가 있습니다).

(*)의 경우base64다음과 같습니다.A-Z,a-z,0-9,+,/ ★★★★★★★★★★★★★★★★★」=(마지막에만 해당) https://en.wikipedia.org/wiki/Base64

P.S. 저도 처음에는 이름 짓기에 혼란스러웠고 이름이 바뀌었다고 생각했습니다. 줄 요.b"base64 encoded string"의 약자이며,a"any string" : D 입니다.

이름은 비슷한 기능을 가진 unix 함수에서 나왔지만 다른 답변에서 이미 읽을 수 있습니다.


여기 어떤 것을 사용해야 할지 기억하기 위한니모닉이 있다.이는 질문 자체에 대한 답변은 아니지만 스택 오버플로우에서 하루 종일 이 질문에 대한 탭을 열지 않고 어떤 기능을 사용할지 결정하는 데 도움이 될 수 있습니다.

아름다운 것부터 끔찍한 것까지btoa

아름다운 것(어플리케이션에서 의미 있는 아름다운 것: json, xml, text, binary data)을 가져와 그대로 이해할 수 없는 끔찍한 것으로 변환합니다(일명 encoded).

끔찍하고 아름다운 것atob

btoa의 정반대

메모

어떤 사람들은 이진법이 아름답지 않다고 말할지 모르지만, 이봐, 이건 단지 너를 돕기 위한 속임수일 뿐이야.

현재 소스를 찾을 수 없지만, 이 경우 b는 'binary'를 나타내고 a는 'ASCII'를 나타낸다는 것은 상식입니다.

따라서 함수는 실제로 다음과 같이 명명됩니다.

ASCII에서 바이너리로(용)atob()및 의 바이너리에서 ASCII로btoa().

이는 브라우저 구현이며 레거시/하위 호환성을 위해 남겨진 것입니다.예를 들어 Node.js에는 존재하지 않습니다.

언급URL : https://stackoverflow.com/questions/33854103/why-were-javascript-atob-and-btoa-named-like-that

반응형