Ascii85(Base85) 인코딩 변환기
4바이트를 5문자로 담는 Base85를 서로 변환합니다. btoa·Adobe·Z85·RFC 1924의 서로 다른 문자표와 z 축약, 자투리 처리 규칙을 변종별로 정확히 지킵니다.
입력한 내용은 서버로 전송되지 않습니다.
9jqo^BlbD-BleB1DJ+*+F(f,q
!부터 u까지(33~117)를 차례로 쓰고, 0 네 바이트를 z 한 글자로 줄입니다.Adobe는 같은 문자표를 쓰되 <~로 시작해 ~>로 끝냅니다. PostScript와 PDF 안에서 만나는 형태입니다.Z85와 RFC 1924는 문자표에서 " ' \ ,를 뺐습니다. 소스 코드 문자열이나 JSON 안에 그대로 넣어도 이스케이프가 필요 없게 하려는 것입니다. btoa 계열에는 이 글자들이 다 들어 있어 그런 곳에 쓰기 나쁩니다.y 한 글자로 줄이는 규칙은 btoa 원본에는 있었지만 Adobe는 쓰지 않습니다. 모르는 쪽이 받으면 문자표에 없는 글자로 보여 디코딩이 깨지므로, 상대 구현이 지원하는지 확인하고 켜세요.사용 방법
- 1변종을 고릅니다. PDF·PostScript 안에서 가져왔다면 Adobe, ZeroMQ라면 Z85입니다.
- 2인코딩과 디코딩 중 무엇을 할지 고릅니다.
- 3입력이 텍스트인지 16진수 바이트인지 고릅니다. Z85는 길이가 4의 배수여야 해서 16진수 쪽이 편합니다.
- 4아래 표에서 팽창률을 확인하고 같은 데이터를 Base64로 적었을 때와 비교합니다.
자주 묻는 질문
팽창률이 33%가 아니라 25%입니다. Base64는 3바이트를 4문자로 담고 Ascii85는 4바이트를 5문자로 담기 때문입니다. 400바이트를 예로 들면 Base64는 536자, Ascii85는 500자가 됩니다. 대신 쓸 수 있는 문자의 종류가 많아 그대로 넣을 수 없는 곳이 생깁니다.
85⁵ = 4,437,053,125가 2³² = 4,294,967,296보다 크기 때문입니다. 4바이트를 다섯 자리에 담으려면 밑이 85 이상이어야 하는데, 84진법이면 84⁵ = 4,182,119,424로 모자랍니다. 인쇄 가능한 ASCII로 만들 수 있는 가장 조밀한 조합이 4바이트 대 5문자입니다.
문자표와 규칙이 다릅니다. btoa·Adobe 계열은 !(33)부터 u(117)까지를 차례로 쓰고 0 네 바이트를 z 한 글자로 줄이지만, Z85(ZeroMQ RFC 32)는 별도의 85자 문자표를 쓰고 축약이 없으며 입력 길이가 4의 배수여야 합니다. 서로 호환되지 않으니 어느 쪽인지 확인하고 골라야 합니다.
따옴표, 역슬래시, 쉼표를 빼기 위해서입니다. 이 글자들이 없으면 소스 코드의 문자열이나 JSON, CSV 안에 결과를 그대로 넣어도 이스케이프가 필요 없습니다. btoa 계열은 33~117을 연속으로 쓰다 보니 " ' \ , 가 모두 들어 있어 그런 곳에 쓰기 나쁩니다.
Adobe 변종이 데이터의 시작과 끝을 표시하는 구분자입니다. PostScript와 PDF 안에서는 어디까지가 인코딩된 데이터인지 알아야 하기 때문에 붙입니다. 이 도구는 btoa로 골라도 붙어 있으면 떼고 읽습니다.
0 네 바이트를 줄여 쓴 것으로, !!!!! 다섯 자 대신 z 한 자만 씁니다. 0이 길게 이어지는 이미지나 바이너리에서 꽤 줄어듭니다. 다만 마지막 자투리 덩어리에는 쓰지 않습니다. 자투리는 몇 바이트였는지를 글자 수로 담고 있어서, 축약해 버리면 길이를 알 수 없게 되기 때문입니다.
인코딩은 0으로 4바이트를 채워 다섯 글자를 만든 뒤 (바이트 수 + 1)글자만 남기고, 디코딩은 반대로 u(85진법의 84)로 다섯 글자를 채워 네 바이트를 만든 뒤 (글자 수 − 1)바이트만 남깁니다. 채우는 값이 서로 반대 방향이어야 원래 바이트가 그대로 돌아옵니다. Z85는 이 문제를 피하려고 입력 길이를 4의 배수로 못박았습니다.
전송되지 않습니다. 변환은 모두 브라우저 안에서 이루어지며 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- btoa·Adobe·foldspaces 결과는 파이썬 base64.a85encode, RFC 1924는 base64.b85encode를 정답지로 삼아 값을 그대로 대조했습니다.
- Z85는 파이썬 표준 라이브러리에 없어 ZeroMQ RFC 32의 시험값(86 4F D2 6F B5 59 F7 5B → HelloWorld)으로 확인했습니다.
- y 축약(공백 네 개 → y)은 btoa 원본의 확장이며 Adobe는 쓰지 않습니다. 상대 구현이 지원하는지 확인하고 켜세요.
- 텍스트 입력은 UTF-8로 읽습니다. 디코딩 결과가 UTF-8로 읽히지 않으면 16진수로 보여 줍니다.
- 입력한 값은 브라우저 안에서만 계산되며 서버로 전송되지 않습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 8월 31일 · 결과는 참고용 추정치입니다.