Decodex
← Base64 변환 도구로 돌아가기

BASE64 GUIDE

한글·이모지 Base64 인코딩과 디코딩

한글이 깨지는 이유와 UTF-8 변환 순서를 설명하고, 검증된 예시로 한글·이모지 Base64를 변환합니다.

한글이나 이모지도 Base64로 변환할 수 있습니다. 중요한 것은 Base64 앞뒤에서 사용하는 문자 인코딩입니다. Decodex는 텍스트를 UTF-8 바이트로 바꾼 뒤 인코딩하며, 디코딩한 바이트도 UTF-8로 읽습니다.

한글·이모지 변환 예시

아래 두 값은 UTF-8 기준으로 서로 변환됩니다. 문자열 뒤에 공백이나 줄바꿈을 더하면 결과가 달라질 수 있으므로 예시 그대로 사용하세요.

원문

안녕하세요 😀

Base64

7JWI64WV7ZWY7IS47JqUIPCfmIA=

변환 순서는 텍스트 → UTF-8 바이트 → Base64입니다. 반대 방향은 Base64 → 바이트 → UTF-8 텍스트입니다. Base64 문자열만으로는 원문이 어떤 문자 인코딩을 사용했는지 알 수 없습니다.

Decodex에서 직접 변환하는 방법

  1. 인코딩 페이지에서 안녕하세요 😀를 입력합니다.
  2. 기본 설정인 자동 변환이 켜져 있으면 입력 뒤 결과가 표시됩니다. 자동 변환을 끄면 Base64 인코딩 버튼을 누릅니다.
  3. 결과 복사를 누르고 디코딩 페이지에 붙여 넣습니다. 페이지 이동 시 입력이 자동 전달되지는 않습니다.
  4. 원래 한글과 이모지로 돌아오는지 확인합니다.

영어와 한글이 섞인 문장도 같은 방식으로 변환합니다. 인코딩할 때 앞뒤 공백과 줄바꿈은 원문의 일부로 보존됩니다. 디코딩할 때 Base64 안의 공백과 줄바꿈은 무시합니다.

한글이 깨지거나 UTF-8 오류가 나는 이유

Base64는 문자 인코딩을 자동으로 바꾸는 기능이 아닙니다. CP949·EUC-KR로 만든 바이트를 UTF-8로 읽으면 제대로 해석되지 않을 수 있습니다. 원본을 생성한 서비스나 파일의 문자 인코딩을 먼저 확인하고, 가능하면 그쪽에서 UTF-8로 저장한 뒤 다시 인코딩하세요.

이미 깨진 문자열을 Base64로 바꾸면 깨진 내용 그대로 변환됩니다. 여러 번 디코딩한다고 원래 한글이 복원되는 것은 아닙니다. 원본이 실제로 여러 번 인코딩된 경우에만 추가 디코딩을 시도하세요.

문자 인코딩이 맞는데도 실패한다면 문자열이 잘렸거나 다른 값이 섞였는지 Base64 오류 해결 안내의 예시와 비교해보세요.

JavaScript에서 한글을 변환한다면

btoa("안녕하세요")처럼 유니코드 문자열을 그대로 넣으면 오류가 납니다. btoa()는 각 문자를 한 바이트로 취급하므로, 먼저 TextEncoder로 UTF-8 바이트를 만들고 그 바이트를 Base64로 변환해야 합니다. 반대 방향에서는 Base64를 바이트로 복원한 다음 TextDecoder로 UTF-8을 해석합니다. 자세한 설명은 MDN의 유니코드 변환 안내에서 확인할 수 있습니다.

변환한 내용을 안전하게 다루기

Base64 결과는 누구나 되돌릴 수 있습니다. 한글이 알아보기 어려운 영문 문자열로 바뀌어도 암호화된 것은 아닙니다. Decodex의 변환은 브라우저에서 처리되지만, 복사한 결과를 다른 사이트에 붙여 넣거나 공개하면 원문도 노출될 수 있습니다. 사이트 방문 통계에 관한 내용은 개인정보처리방침을 확인하세요.