Base64 변환

브라우저 안에서만 처리됩니다. 입력한 내용과 선택한 파일은 서버로 전송되지 않습니다.

Base64

텍스트를 입력하면 여기에 Base64 가 나옵니다.

사용법

  1. 위쪽에서 인코딩과 디코딩을 고릅니다.
  2. 인코딩은 텍스트를 입력하거나 파일을 끌어다 놓으면 됩니다. 필요하면 알파벳을 URL 안전(- _)으로 바꾸고 패딩(=)을 끕니다.
  3. 디코딩은 Base64 를 붙여넣으면 됩니다. 결과가 텍스트가 아니면 이진 데이터라고 알려 주고 파일로 저장할 수 있게 해 줍니다.

자주 묻는 질문

한글이나 이모지도 되나요?

됩니다. 글자를 UTF-8 바이트로 바꾼 뒤 인코딩하고, 디코딩할 때도 UTF-8 로 되돌립니다. 브라우저에 내장된 btoa 함수는 U+00FF 를 넘는 글자에서 예외를 던지기 때문에 한글이 하나라도 있으면 쓸 수 없는데, 이 도구는 그 단계를 직접 처리합니다.

URL 안전 알파벳과 패딩은 언제 쓰나요?

JWT 토큰이나 URL 파라미터에 Base64 를 넣을 때 표준 알파벳의 `+` 와 `/` 는 URL 에서 다른 뜻을 가지므로 `-` 와 `_` 로 바꿔 씁니다. 패딩(`=`)도 URL 에서는 보통 뗍니다. 디코딩할 때는 둘 중 무엇이 왔는지 알아서 판단하므로 따로 고르지 않아도 됩니다.

디코딩했는데 글자가 깨져서 나오지 않나요?

깨진 글자를 보여 주지 않습니다. 디코딩한 바이트가 올바른 UTF-8 이 아니면 "텍스트가 아니다" 라고 알리고 앞부분을 16진수로 보여 준 뒤 파일로 저장할 수 있게 합니다. 이미지·압축 파일이거나 EUC-KR 처럼 다른 인코딩으로 만든 것일 때가 그렇습니다. 물음표투성이 문자열을 그대로 내놓으면 사람이 "원래 이런가 보다" 하고 넘어가게 되어 그게 더 나쁩니다.

이미지를 Base64 로 만들 수 있나요? 크기 제한은요?

파일 모드에서 이미지를 끌어다 놓으면 됩니다. 20 MB 까지 받습니다. Base64 는 결과가 원본의 약 1.33배이고 복사할 수 있으려면 그 문자열을 통째로 메모리에 들고 있어야 해서 상한을 뒀습니다. CSS 나 HTML 에 인라인으로 넣을 이미지라면 보통 수백 KB 안쪽이라 넉넉합니다.

줄바꿈이 들어간 Base64 나 data: 로 시작하는 문자열도 되나요?

둘 다 그대로 붙여넣으면 됩니다. 메일 첨부나 PEM 인증서처럼 일정 길이마다 줄바꿈이 들어간 것은 공백을 무시하고 읽고, `data:image/png;base64,` 같은 접두사는 떼어 낸 뒤 읽습니다. 무엇을 어떻게 처리했는지는 결과 위에 적어 둡니다.