사용 방법
- xxencode 블록을 만들려면 ‘인코딩’을, 블록을 원래 데이터로 되돌리려면 ‘디코딩’을 선택합니다.
- 완전한 블록을 만들려면 ‘begin / end 줄’을 켠 상태로 두고 ‘파일 이름’을 설정합니다. 데이터 줄만 필요하면 이 옵션을 끕니다.
- 내용을 입력하거나 붙여넣거나, ‘파일 열기’로 파일을 불러옵니다. 결과는 입력하는 즉시 갱신됩니다.
- 결과를 복사하거나 다운로드합니다. 디코딩한 데이터가 텍스트가 아니라면 ‘출력 형식’을 ‘16진수’로 선택하거나 파일로 다운로드합니다.
xxencode란?
xxencode는 uuencode의 구조를 그대로 유지하고 문자만 바꾼 형식입니다. 3바이트를 6비트 값 4개로 나누는 방식, 데이터 줄 하나에 길이 문자와 최대 45바이트를 담는 방식, 블록을 begin 644 name 줄과 end 줄 사이에 두는 방식은 모두 같습니다.
64개의 값은 +, -, 숫자 0-9, 대문자 A-Z, 소문자 a-z 순서로 대응합니다. 길이 문자도 같은 표를 사용하므로 45바이트가 꽉 찬 줄은 h로 시작하고, end 앞의 빈 줄은 + 하나입니다. 구조가 같으므로 출력 크기도 uuencode와 같아서, 길이 문자와 줄 바꿈을 포함하면 입력보다 약 38% 커집니다.
xxencode가 만들어진 이유
uuencode 출력에는 [, ], \, ^, ! 같은 문장 부호가 가득합니다. IBM 메인프레임은 ASCII가 아닌 EBCDIC을 사용하는데, 이 문자들은 EBCDIC 코드 페이지마다 위치가 다릅니다. ASCII 네트워크와 EBCDIC 네트워크 사이의 게이트웨이를 메일이 통과할 때 이런 문자가 잘못 변환되어 파일이 손상될 수 있었습니다.
영문자, 숫자, 더하기, 빼기 기호는 모든 EBCDIC 코드 페이지에서 같으므로 xxencode 텍스트는 양방향 모두 깨끗하게 변환됩니다. 나중에 MIME도 같은 목표를 달성했습니다. Base64 역시 영문자, 숫자, 그리고 ASCII와 EBCDIC에서 동일한 몇 가지 기호만 사용합니다. xxencode는 uuencode만큼 널리 쓰이지 못했고, 결국 Base64가 둘 다 대체했습니다.
uuencode와 xxencode 비교
| Uuencode | Xxencode | |
|---|---|---|
| 사용 문자 | ASCII 32~95, 0 값은 백틱 | + - 0-9 A-Z a-z |
| 45바이트가 꽉 찬 줄의 첫 문자 | M | h |
| end 앞의 마지막 줄 | ` | + |
| EBCDIC 게이트웨이 통과 시 안전 | 아니요 | 예 |
사양
| 알파벳 | + - 0-9 A-Z a-z |
|---|---|
| 출력 크기 | 약 137%(줄 앞 길이 문자 포함) |
| 패딩 | 줄당 최대 45바이트 |
| 표준 | xxencode |
| 대소문자 구분 | 예 |
예시
| 입력 (UTF-8) | 출력 |
|---|---|
Hello, World! | begin 644 data.bin
BG4JgP4wg63RjQalY6E++
+
end |
Base64.is | begin 644 data.bin
7Ea3nNHMo9aZn
+
end |
你好 | begin 644 data.bin
4t9qUtOKx
+
end |
자주 묻는 질문
uuencode와 xxencode는 어떻게 구별합니까?
h로 시작합니다. uuencode 줄에는 문장 부호가 들어 있고 꽉 찬 줄은 M으로 시작합니다. 여기서 디코딩할 때 잘못된 문자 오류가 발생하면 uuencode 페이지에서 시도해 보십시오.도구가 begin 줄과 end 줄을 작성합니까?
begin 644 줄과 닫는 줄들을 작성합니다. 인코딩된 데이터 줄만 필요하다면 ‘begin / end 줄’ 옵션을 끄십시오.begin 줄이 없는 블록도 디코딩할 수 있습니까?
예. begin 줄이 없으면 비어 있지 않은 모든 줄을 데이터로 디코딩합니다. begin 줄이 있으면 그다음 줄부터 디코딩을 시작해 end 줄에서 멈추므로 주변 텍스트는 무시됩니다.