> encode | decode | ascii85 <
// 효율적인 바이너리 데이터 표현을 위한 Base85(ASCII85) 인코딩
고효율
Base64 대비 약 25% 더 compact한 출력.
로컬 처리
모든 변환은 브라우저에서 수행됩니다. 데이터는 기기를 떠나지 않습니다.
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)를 나타내는 특수 지름길입니다.
// 빠른 참조
| 입력 | ASCII85 | Base64 |
|---|---|---|
| Man | 9jqo^ | TWFuIA== |
| sure. | F*2M7/c | c3VyZS4= |
| Hello | 87cURDZ | SGVsbG8= |
| \0\0\0\0 | z | AAAAAA== |
// 코드 예제
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가 낫습니다.