Quoted-Printable 인코더 / 디코더
MIME Quoted-Printable 텍스트와 RFC 2047 =?UTF-8?Q?...?= 이메일 헤더를 Q·Base64 인코딩과 모든 문자셋으로 인코딩·디코딩합니다.
Quoted-Printable은 ASCII만 통과하는 메일 시스템으로 악센트 글자·기호·이모지·한글을 보내는 방식입니다. 그런 바이트는 =XX로 바뀌고(é는 =C3=A9), 긴 줄은 끝에 =를 붙여 접으며(소프트 줄바꿈), 제목줄은 같은 것을 =?UTF-8?Q?…?=로 감쌉니다.
두 상자 모두 바로 바뀝니다. 어느 쪽에 입력해도 다른 쪽이 따라옵니다.
UTF-8, 소프트 줄바꿈, =?UTF-8?Q?…?= 이메일 헤더를 처리합니다.
Quoted-Printable이란
Quoted-Printable은 7비트 ASCII만 보장하는 메일 시스템으로 8비트 데이터를 안전하게 보내기 위한 MIME 인코딩입니다. 출력 가능한 ASCII 바이트는 그대로 두고, 등호와 제어 문자, 비 ASCII 문자의 모든 바이트는 대문자 16진수를 사용해 =XX 형태로 표기합니다. 긴 줄은 76자에서 끝에 등호를 붙여 줄바꿈하며, 이 소프트 줄바꿈은 디코딩 시 제거됩니다. 제목 줄이나 연락처 이름처럼 한 줄이어야 할 때는 한 줄로를 켜면 소프트 줄바꿈 없이 나오고, 줄바꿈 문자 메뉴에서 모든 줄바꿈을 LF·CRLF·CR 중 하나로 쓸 수 있습니다.
인코딩·디코딩과 이메일 헤더
디코딩 모드로 전환하면 원본 이메일 본문이나 =?UTF-8?Q?...?= 형태의 제목 줄을 붙여넣어 읽을 수 있는 텍스트로 되돌릴 수 있습니다. 본문 형식과 RFC 2047 인코디드 워드 헤더 형식(Q 또는 B(Base64) 인코딩, 모든 문자셋)을 모두 디코딩하며, 전부 브라우저에서 처리되어 업로드되지 않습니다. Quoted-Printable은 바이트가 어떤 문자셋인지 적어 두지 않으므로, 문자 집합 메뉴에서 인코딩·디코딩 모두 그 문자셋을 고릅니다. 기본은 UTF-8이고 EUC-KR·Windows-1252 등 목록의 다른 것도 고를 수 있습니다 — EUC-KR로 저장된 옛 메일 본문도 한글로 읽히고, 고른 문자셋에 없는 문자는 물음표로 바꾸지 않고 어떤 문자인지 알려 주며 거부합니다. 아래 상자도 바로 고칠 수 있어 어느 쪽에 입력해도 다른 쪽이 따라오므로 두 형태를 나란히 볼 수 있고, 링크 복사는 텍스트와 설정을 복사하는 링크에 담습니다.
어디에 쓰나, Base64와는 어떻게 다른가
Quoted-Printable은 대부분이 평범한 ASCII이고 다른 글자가 조금 섞인 글에 맞춘 방식입니다 — 악센트가 붙은 이름이 든 영어 메일, © 기호가 든 서명 같은 글입니다. ASCII는 원본 메일에서도 그대로 읽히고, 드문드문 섞인 바이트만 =XX로 늘어납니다. MIME의 또 다른 방식인 Base64는 첨부 파일 같은 바이너리 데이터를 위한 것으로, 바이트가 무엇이든 세 바이트를 영문자·숫자·기호 네 글자로 바꾸므로 원본보다 삼분의 일쯤 길어지고 눈으로는 읽을 수 없습니다. 그래서 대부분 ASCII인 글은 Quoted-Printable이 더 짧지만, 한글·한자·일본어·이모지처럼 ASCII가 아닌 바이트가 많아지면 그 바이트가 하나하나 세 배로 늘어나 Base64가 더 짧아집니다. 한글 메일이 흔히 Base64로 오는 이유입니다. 메일은 어느 방식을 썼는지 Content-Transfer-Encoding 헤더에 적고, 제목 줄은 =?UTF-8?Q?…?=의 Q나 B로 나타내며, 이 페이지는 헤더의 두 형식을 모두 읽습니다.
자주 묻는 질문
Quoted-Printable의 소프트 줄바꿈이 무엇인가요?
줄 끝의 등호는 소프트 줄바꿈을 뜻합니다. 76자 제한을 지키려고 줄을 나눈 것이므로 디코더가 다음 줄과 이어 붙이고 표시를 제거합니다. 데이터의 실제 등호는 항상 =3D로 표기됩니다.
=?UTF-8?Q? 이메일 제목도 디코딩하나요?
네. 디코딩 모드는 =?UTF-8?Q?...?=, =?UTF-8?B?...?= 같은 RFC 2047 인코디드 워드를 인식해 Q 형식의 밑줄을 공백으로 바꾸고, B 형식의 Base64를 디코딩하며, UTF-8이나 ISO-8859-1 같은 지정 문자셋을 적용합니다.
UTF-8이 아닌 문자셋으로, 또는 한 줄로 인코딩할 수 있나요?
네. 문자 집합 메뉴가 바이트를 정합니다 — 안녕을 EUC-KR로 인코딩하면 UTF-8 바이트가 아니라 =BE=C8=B3=E7이 되고, 디코딩도 고른 문자셋으로 바이트를 읽습니다. 다만 =?ISO-8859-1?Q?…?= 같은 인코디드 워드는 그 안에 적힌 문자셋을 그대로 씁니다. 고른 문자셋에 없는 문자는 물음표로 바꾸지 않고 어떤 문자인지 알려 주며 거부합니다. 인코딩 모드에서 한 줄로를 켜면 소프트 줄바꿈 없이, 글 자체의 줄바꿈은 =0D와 =0A로 적고, 줄바꿈 문자에서는 인코더가 쓰는 모든 줄바꿈을 LF·CRLF·CR 중 하나로 고릅니다.
어느 상자에든 입력하거나, 변환을 링크로 보낼 수 있나요?
네. 아래 상자도 고칠 수 있어서, 거기에 입력하면 반대 방향으로 변환해 위 상자를 고쳐 씁니다 — 인코딩 모드에서 아래에 Quoted-Printable을 입력하면 위에 디코딩되고, 디코딩 모드에서 아래에 텍스트를 입력하면 위에 인코딩됩니다. 그래서 두 형태가 함께 화면에 있고 함께 바뀝니다. 인코딩·디코딩 버튼은 어느 상자가 텍스트인지 정하고 결과를 넘겨 줍니다. 다운로드 옆의 링크 복사는 텍스트, 변환 방향, 문자 집합, 한 줄로, 줄바꿈 문자를 복사하는 링크에 담고 링크를 열면 그대로 나옵니다. 통째로 연 .eml처럼 링크에 담기에 너무 긴 텍스트면 버튼 대신 그렇다는 안내가 나옵니다.