베이스64: 두 판 사이의 차이
내용 삭제됨 내용 추가됨
InternetArchiveBot (토론 | 기여) 3 개의 출처 구조, 0 개의 링크를 깨진 것으로 표시 #IABot (v2.0beta10) |
Codenstory (토론 | 기여) →MIME: 띄어쓰기를 추가함 태그: m 모바일 웹 |
||
165번째 줄:
인코딩된 문자열은 알파벳 대소문자와 숫자, 그리고 "+", "/" 기호 64개로 이루어지며, "="는 끝을 알리는 코드로 쓰인다.
베이스64의 정확한 규격은 RFC 1421, RFC 2045에 정의된다. 연속된 8비트 바이트를 인코딩하도록 정의되어 있으며, 이는 대부분 시스템에서 파일의 정의와 들어맞는다.
데이터를 베이스64로 바꾸는 과정은 다음과 같다. 우선 24비트 버퍼에 위쪽(MSB)부터 한 바이트씩 세 바이트를 집어넣는다. 그리고 남은 바이트가 3바이트 미만이라면, 버퍼의 남은 부분은 0으로 채워넣게 된다. 그리고, 버퍼의 위쪽부터 6비트<ref>64 = 2<sup>6</sup>이므로</ref>씩 잘라 그 값을 읽어, 다음에 정렬된 64개 <code>"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"</code>의 문자 중에서 읽은 값 번째 문자를 골라 출력한다. 만약 입력된 바이트가 하나라면 출력 중 두 개만이 사용되고 나머지 둘은 <code>"="</code>으로 패딩되며, 입력된 바이트가 둘이라면 출력 중 세 개 만이 사용되고 나머지 하나는 <code>"="</code>으로 패딩되게 된다. 이것은 원본으로 되돌릴 때 원본에는 없던 비트가 생기는 것을 방지하기 위함이다. 이 과정을 입력 데이터가 끝날 때까지 반복하면 인코딩이 된다.
208번째 줄:
LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=
</pre>
== UTF-7 ==
RFC 2152에서 정의된 UTF-7은 Modified BASE64라 불리는 시스템을 의미한다. 이 data encoding scheme는 UTF-16을 SMTP와 같이 7비트를 사용하는 ASCII문자로 변환하는데 사용된다. 이는 MIME를 사용하는 BASE64 encoding의 변화된 방식이다. Modified BASE64 알파벳은 MIME BASE64 알파벳으로 구성되어 있으나, “ = ” 패딩 기호는 사용하지 않는다. UTF-7은 메일 헤더로 구성되어 사용되며<ref>RFC 2047로 정의</ref>, “ = ”기호는 quoted-printable encoding을 위한 이스케이프 문자로 사용된다. Modified BASE64는 간단하게 유용한 비트를 포함하고 있는 마지막 BASE64 숫자<ref>마지막 BASE64숫자 중 0~3을 제외한 미사용 비트</ref> 뒤에 바로 패딩과 끝을 생략한다.
|