> encode | decode | ascii85 <

// 효율적인 바이너리 데이터 표현을 위한 Base85(ASCII85) 인코딩

[EFFICIENT]

고효율

Base64 대비 약 25% 더 compact한 출력.

[SECURE]

로컬 처리

모든 변환은 브라우저에서 수행됩니다. 데이터는 기기를 떠나지 않습니다.

[STANDARD]

Adobe 표준

구분 기호 <~ ~> 를 사용하는 표준 ASCII85 형식, PostScript 호환.

>> 기술 정보

Base85 동작 방식:

Base85는 85개의 인쇄 가능한 ASCII 문자로 이진 데이터를 인코딩합니다. 4바이트를 5문자로 인코딩하여 Base64보다 효율적입니다.

예시:

"Hello" → <~87cURD]i~>

Base85를 사용하는 이유:

  • >Base64보다 효율적 (~25% 작음)
  • >PostScript/PDF 표준
  • >좋은 압축 효율
  • >인쇄 가능한 ASCII만 사용
  • >제로 바이트를 위한 'z' 지름길 포함

>> 자주 묻는 질문

Base85 인코딩이란?

Base85(ASCII85)는 85개의 인쇄 가능한 ASCII 문자로 이진 데이터를 보다 효율적으로 표현하는 바이너리‑텍스트 인코딩입니다.

왜 Base85가 Base64보다 효율적인가요?

Base85는 4바이트→5문자(80%), Base64는 3→4(75%): 약 25% 더 compact합니다.

구분 기호 <~ ~> 는 무엇인가요?

Adobe ASCII85 표준의 일부로, 인코딩 데이터의 시작과 끝을 표시합니다.

'z' 문자는 무슨 의미인가요?

연속된 4개의 제로 바이트(\x00\x00\x00\x00)를 나타내는 특수 지름길입니다.

// 빠른 참조

입력ASCII85Base64
Man 9jqo^TWFuIA==
sure.F*2M7/cc3VyZS4=
Hello87cURDZSGVsbG8=
\0\0\0\0zAAAAAA==

// 코드 예제

Adobe     <~87cURDZ~>            (PostScript / PDF, z = four zero bytes)
Python    base64.a85encode(b'Hello')  ->  b'87cURDZ'
          base64.b85encode(b'Hello')  ->  b'NM&qnZv'   (RFC 1924 / Git alphabet)
Z85       ZeroMQ, safe to embed in source strings
Size      4 bytes -> 5 chars  (Base64: 4 bytes -> 5.33 chars)

>> 더 많은 질문

Q: ASCII85, Base85, Z85의 차이는 무엇인가요?

A: 셋 모두 같은 계산(4바이트→5문자)을 쓰지만 알파벳이 다릅니다. ASCII85(Adobe, PDF/PostScript)는 !부터 u까지를 쓰고 <~ … ~>로 감싸며 0 바이트 4개는 z로 표기합니다. Base85(RFC 1924, Git)는 다른 알파벳, Z85(ZeroMQ)는 소스 코드에 넣기 안전한 알파벳입니다.

Q: Base85의 크기는 Base64와 비교해 어떤가요?

A: 4바이트가 정확히 5문자가 되어 Base64의 약 5.33문자보다 짧습니다. 오버헤드가 33%에서 25%로 줄어, 같은 데이터에서 문자 수가 약 25% 줄어듭니다.

Q: Base85는 URL에 안전한가요?

A: 아니요. ASCII85에는 & , ; ' " < > 같이 URL, HTML, 셸에서 이스케이프가 필요한 문자가 있습니다. URL에는 Base64url, 소스 코드에는 Z85가 낫습니다.