텍스트 ↔ 2진수 변환

텍스트를 2진수(0과 1)로 인코딩하거나 2진수를 다시 텍스트로 변환합니다.

결과

한글·이모지는 UTF-8에서 여러 바이트를 차지합니다. 은 3바이트(ED 95 9C), 대부분의 이모지는 4바이트입니다. 이 도구는 글자를 코드포인트 단위로 처리하므로 한글·이모지도 정확히 되돌릴 수 있습니다.

구분자를 없음으로 두면 2진수는 8자리, 8진수·10진수는 3자리, 16진수는 2자리씩 끊어 읽습니다. 전체 자릿수가 이 배수와 맞지 않으면 텍스트로 되돌릴 수 없습니다.

텍스트 ↔ 2진수 변환란?

입력한 텍스트를 컴퓨터가 이해하는 0과 1의 2진수 코드로 바꾸거나, 반대로 2진수 코드를 사람이 읽을 수 있는 텍스트로 되돌립니다. 단순히 텍스트와 2진수(binary)를 오가는 것을 넘어 8진수, 10진수, 16진수(hex) 변환도 자유롭게 선택할 수 있습니다. 텍스트를 붙여넣는 즉시 변환 방향을 자동으로 감지해 결과를 보여주며, 코드의 숫자 사이에 공백·쉼표 등 구분자를 넣거나, 접두어(0b, 0x)를 붙이는 등 다양한 출력 옵션을 제공합니다. 모든 변환 과정은 사용자의 브라우저 안에서만 실행되므로 서버로 데이터가 전송되지 않습니다. 회원가입이나 설치 없이, 민감한 내용도 안심하고 변환하세요. 변환 결과뿐 아니라 각 글자가 어떤 바이트로, 어떻게 코드로 바뀌는지 상세표로 보여주어 학습 및 디버깅 용도로도 탁월합니다.

사용 방법

  1. 왼쪽 입력창에 변환할 텍스트나 2진수, 16진수 코드를 입력하거나 붙여넣습니다. '예시 넣기' 버튼으로 기능을 바로 시험해볼 수 있습니다.
  2. 변환 방향은 '🔄 자동 감지'가 기본이며, 입력 내용에 따라 텍스트 또는 코드로 자동 인식합니다. 필요하면 '텍스트 → 코드'나 '코드 → 텍스트'로 직접 지정할 수 있습니다.
  3. 기본 2진수 외에 '8진수', '10진수', '16진수' 버튼으로 변환할 진법을 선택합니다.
  4. 결과 코드에 사용할 '구분자', 바이트 단위 '그룹' 묶기, 접두어(0b/0x) 표시 여부 등 세부 옵션을 설정합니다.
  5. 입력과 동시에 오른쪽 결과창에 변환된 내용이 나타납니다. '복사' 버튼이나 '저장' 버튼으로 결과를 활용하세요.
  6. 결과 아래 '글자별 상세' 표에서 각 글자의 유니코드 코드포인트, UTF-8 바이트 값, 선택한 진법 표현을 한눈에 확인할 수 있습니다.

텍스트 ↔ 2진수 변환 사용 가이드

실제 작업에서 이 도구를 어떻게 쓰는지, 무엇을 조심해야 하는지 정리했습니다.

컴퓨터가 글자를 저장하는 방식

컴퓨터에 "글자"라는 것은 없습니다. 숫자만 있고, 그 숫자를 어떤 표로 읽을지 약속해 둔 것이 인코딩입니다. 이 도구는 그 중간 과정을 통째로 펼쳐 보여 줍니다.

순서는 이렇습니다. 글자 → 유니코드 코드포인트(U+로 시작하는 번호) → UTF-8 바이트열 → 각 바이트를 고른 진법으로 표기. 글자별 상세표의 네 열이 정확히 이 단계에 대응합니다.

글자코드포인트UTF-8 바이트2진수
AU+004141 (1바이트)01000001
U+AC00EA B0 80 (3바이트)11101010 10110000 10000000
U+D55CED 95 9C (3바이트)11101101 10010101 10011100
😀U+1F600F0 9F 98 80 (4바이트)11110000 10011111 10011000 10000000
통계에 나오는 "글자 수"와 "UTF-8 바이트"가 다른 이유가 여기 있습니다. 영문은 1:1이지만 한글은 1:3, 이모지는 1:4입니다.

한글이 3바이트인 이유와 실무에서 터지는 지점

UTF-8은 가변 길이 인코딩입니다. ASCII 영역(U+0000~U+007F)은 1바이트로 두어 기존 영문 데이터와 호환되게 하고, 대신 그 뒤 문자는 2·3·4바이트로 늘려 씁니다. 한글 음절(U+AC00~U+D7A3)은 3바이트 구간에, 이모지(U+10000 이상)는 4바이트 구간에 들어갑니다.

이 차이가 코드에서는 이렇게 나타납니다.

  • MySQL의 옛 utf8(utf8mb3)은 글자당 최대 3바이트만 담습니다. 한글은 되지만 이모지를 넣으면 "Incorrect string value" 오류가 납니다. utf8mb4로 바꿔야 합니다.
  • 컬럼 길이 제한이 바이트 기준인지 글자 기준인지에 따라 결과가 달라집니다. 오라클의 VARCHAR2(10 BYTE)에는 한글이 3자밖에 안 들어갑니다.
  • API 요청 본문 크기 제한, 쿠키 4KB 제한 같은 것은 전부 바이트 기준입니다. 한글이 섞이면 체감 글자 수의 3분의 1에서 걸립니다.
국내 문자메시지(SMS)의 90바이트 제한은 UTF-8이 아니라 EUC-KR 기준이라 한글이 2바이트로 계산됩니다(한글 45자). 이 도구가 보여 주는 UTF-8 바이트 수와 다르니 문자 발송 글자 수 계산에는 쓰지 마세요.

글자가 깨지는 원리

인코딩 깨짐은 데이터가 손상된 게 아니라, 같은 바이트열을 다른 표로 읽어서 생깁니다. UTF-8로 저장한 한글을 CP949(윈도우 한국어 인코딩)로 읽으면 엉뚱한 글자가 나오고, 반대로 CP949로 저장한 한글을 UTF-8로 읽으면 물음표나 네모가 뜹니다. 바이트는 그대로인데 읽는 표만 다른 것입니다.

이 도구에서 그 상황을 직접 볼 수 있습니다. 진법을 잘못 고른 채 코드를 되돌리려 하면 "UTF-8 문자로 해석할 수 없는 바이트 배열"이라는 오류가 뜹니다. 바이트가 UTF-8 규칙에 맞지 않으면 해석 자체를 거부하기 때문입니다.

위 표의 2진수 열을 보면 규칙이 눈에 보입니다. 한글 3바이트는 항상 1110·10·10으로 시작합니다. 이 구조 덕분에 바이트열 중간부터 읽어도 글자 경계를 찾을 수 있고, 규칙에 안 맞으면 곧바로 잘못된 데이터임을 알 수 있습니다.

구분자·진법·접두어 설정이 되돌리기를 좌우합니다

만드는 건 아무 설정으로나 되지만, 되돌리려면 바이트 경계를 알 수 있어야 합니다. 구분자를 "없음"으로 두면 자릿수로만 끊어 읽으므로 진법별 자릿수가 정확히 맞아야 합니다.

  • 접두어 옵션은 구분자가 "없음"이면 무시됩니다. 0b를 계속 붙여 놓으면 경계를 되찾을 수 없어 애초에 붙이지 않습니다.
  • 10진수는 접두어가 없는 진법이라 체크해도 아무 변화가 없습니다.
  • "그룹" 옵션은 보기 편하라고 몇 바이트마다 줄을 바꾸는 것뿐입니다. 되돌릴 때 줄바꿈도 구분자로 취급하므로, 그룹을 켜 둔 결과를 그대로 다시 넣어도 됩니다.
진법한 바이트 자릿수구분자 없이 붙였을 때접두어
2진수8자리전체 길이가 8의 배수여야 함0b
8진수3자리3의 배수0o
10진수3자리3의 배수 (000~255, 왼쪽 0 채움)없음
16진수2자리2의 배수0x

자동 감지는 어떻게 판단하나

자동 감지는 입력을 일단 되돌려 보고, UTF-8로 성립하면 코드로, 실패하면 평범한 텍스트로 봅니다. 그래서 16진수 모드에서 "cafe" 같은 영단어를 넣어도 대개 텍스트로 처리됩니다. CA FE라는 바이트가 UTF-8로 해석되지 않기 때문입니다.

다만 우연히 성립하는 짧은 입력은 오판할 수 있습니다. 결과가 이상하면 "텍스트 → 코드" 또는 "코드 → 텍스트"를 직접 눌러 방향을 고정하세요.

bash
# 같은 일을 명령줄에서
echo -n "한" | xxd -b        # 2진수 보기
echo -n "한" | xxd -p        # 16진수 보기 (ed959c)
echo -n "한" | wc -c         # UTF-8 바이트 수 (3)
"결과를 입력으로" 버튼을 누르면 방금 나온 코드가 입력창으로 올라가고 자동 감지로 되돌아옵니다. 왕복이 정확히 되는지 확인하는 가장 빠른 방법입니다.

자주 묻는 질문

한글이나 이모지도 변환할 수 있나요?

네, 가능합니다. 이 도구는 국제 표준인 UTF-8 인코딩을 기준으로 텍스트를 바이트로 변환합니다. UTF-8은 한글, 한자, 이모지 등 전 세계 거의 모든 문자를 표현할 수 있습니다. 한글 한 글자는 보통 3바이트로 변환되며, 도구는 이 다중 바이트 구조를 정확히 처리하므로 변환 후 다시 텍스트로 완벽하게 복원할 수 있습니다.

2진수 말고 다른 진법도 지원하나요?

네. 2진수(binary)뿐만 아니라 8진수(octal), 10진수(decimal), 16진수(hexadecimal) 변환도 완벽하게 지원합니다. 입력창 아래의 버튼에서 원하는 진법을 선택하면, 텍스트를 해당 진법 코드로 바꾸거나 해당 진법 코드를 텍스트로 되돌릴 수 있습니다. 모든 진법에서 구분자, 그룹핑 등 동일한 출력 옵션을 사용할 수 있습니다.

코드를 텍스트로 되돌릴 때 오류가 발생합니다.

몇 가지 경우를 확인해 보세요. 첫째, 입력한 코드와 선택한 진법('2진수', '16진수' 등)이 일치하는지 확인하세요. 둘째, '구분자'를 '없음'으로 설정했다면 코드의 전체 자릿수가 각 진법이 요구하는 배수(2진수 8자리, 16진수 2자리 등)에 맞아야 합니다. 셋째, 변환된 바이트 배열이 유효한 UTF-8 문자열이 아닐 경우에도 오류가 발생할 수 있습니다. 원본 텍스트를 변환할 때 사용한 진법과 동일한 진법을 선택해야 합니다.

입력한 텍스트 내용은 안전하게 처리되나요?

네, 완벽히 안전합니다. 툴즈25시의 모든 도구는 서버 통신 없이 사용자의 웹 브라우저 내에서만 동작합니다. 입력하신 텍스트나 코드는 변환을 위해 저희 서버는 물론 어느 곳으로도 전송되거나 저장되지 않습니다. 인터넷 연결을 끊고 사용해도 모든 기능이 동일하게 작동하는 것을 통해 이를 확인하실 수 있습니다. 개인 정보나 민감한 데이터를 안심하고 변환하세요.