텍스트 2진수·16진수 변환기

문장을 통째로 비트열이나 16진수 코드로 바꾸거나, 코드를 다시 문장으로 복원해보세요.

이 도구는 문장 전체를 컴퓨터가 실제로 저장하는 바이트 단위로 풀어 2진수(예: 01001000) 또는 16진수(예: 48) 코드로 보여주고, 그 코드를 다시 문장으로 복원합니다. 네트워크 패킷이나 파일 헥스 덤프를 눈으로 확인할 때, 한글이 왜 깨졌는지 원인을 추적할 때, 인코딩 수업 자료를 만들 때 쓰기 좋습니다. 모든 계산은 브라우저 안에서만 이루어지며 입력한 글이 서버로 전송되지 않습니다.

변환 원리: 문자 → 코드포인트 → UTF-8 바이트

화면의 글자는 먼저 유니코드 코드포인트(예: "가"는 U+AC00)라는 번호를 갖고, 이 번호를 UTF-8 규칙에 따라 1~4바이트로 부호화한 것이 파일과 네트워크에 실제로 기록되는 값입니다. 이 도구가 보여주는 것은 두 번째 단계, 즉 바이트 값입니다. 각 바이트는 8비트이므로 2진수는 항상 8자리(앞쪽 0 포함), 16진수는 항상 2자리로 표시합니다.

UTF-8은 첫 바이트의 앞쪽 비트로 길이를 알립니다. 0으로 시작하면 1바이트, 110으로 시작하면 2바이트짜리의 첫 바이트, 1110이면 3바이트, 11110이면 4바이트이며, 뒤따르는 바이트는 항상 10으로 시작합니다. 아래 표에서 "가"의 코드 11101010 10110000 10000000 이 정확히 이 규칙을 따르는 것을 확인할 수 있습니다.

문자 종류별 UTF-8 바이트 길이

코드포인트 범위바이트 수해당 문자 예
U+0000 ~ U+007F1영문, 숫자, 기본 기호, 제어 문자(ASCII)
U+0080 ~ U+07FF2라틴 확장(é, ñ), 그리스, 키릴, 히브리, 아랍 문자 등
U+0800 ~ U+FFFF3한글 음절(가~힣), 한자, 일본어 가나, €, 대부분의 기호
U+10000 ~ U+10FFFF4이모지 대부분, 일부 희귀 한자, 수학 알파벳 기호

대표 문자의 실제 변환값 (이 도구와 같은 방식으로 빌드 시 계산)

구분문자코드포인트바이트16진수2진수
영문 대문자AU+004114101000001
영문 소문자aU+006116101100001
숫자 0 (문자)0U+003013000110000
공백(공백)U+002012000100000
라틴 확장éU+00E92c3 a911000011 10101001
한글 음절가U+AC003ea b0 8011101010 10110000 10000000
유로 기호€U+20AC3e2 82 ac11100010 10000010 10101100
이모지😀U+1F6004f0 9f 98 8011110000 10011111 10011000 10000000

검산된 변환 예시

자주 쓰는 ASCII 문자와 제어 문자

ASCII 범위(0~127)에서는 코드포인트와 바이트 값이 같아서 한 문자가 정확히 한 바이트로 나옵니다. 아래 표는 빌드 시 계산한 값이며, 0~31과 127은 화면에 글자로 보이지 않는 제어 문자입니다.

구분10진수16진수2진수
널 문자(NUL)00000000000
탭(TAB)90900001001
줄바꿈(LF)100a00001010
캐리지 리턴(CR)130d00001101
공백322000100000
숫자 0483000110000
숫자 9573900111001
대문자 A654101000001
대문자 Z905a01011010
소문자 a976101100001
소문자 z1227a01111010
물결표 ~1267e01111110
삭제(DEL)1277f01111111

글자 수와 바이트 수는 왜 다른가

같은 문자열이라도 "몇 글자인가"는 세는 방법에 따라 값이 달라집니다. 아래 표는 코드포인트 개수, 자바스크립트 문자열의 length(UTF-16 코드 단위), UTF-8 바이트 수를 나란히 계산한 것입니다. 이 도구의 결과 아래 줄에 표시되는 "문자 N개 → M바이트"의 N은 코드포인트 개수, M은 UTF-8 바이트 수입니다.

문자열코드포인트 수자바스크립트 lengthUTF-8 바이트 수
Hello555
Café445
안녕하세요5515
😀😀248
🇰🇷 (국기 이모지)248

국기 이모지는 눈에는 한 글자지만 지역 표시 문자 두 개가 이어진 것이라 코드포인트는 2개, 바이트는 8개입니다. 글자 수 제한이 있는 서비스는 서비스마다 어떤 기준으로 세는지 달라서, 같은 문장이 어느 곳에서는 통과하고 다른 곳에서는 막힐 수 있습니다.

손으로 따라가 보는 변환 과정

도구가 보여 주는 값이 맞는지 직접 확인하는 방법을 두 가지 소개합니다. 둘 다 위의 UTF-8 규칙만 알면 계산기 없이 따라갈 수 있고, 이 페이지의 값은 모두 같은 규칙으로 다시 계산한 것입니다.

  1. "Hi"를 2진수로. H는 십진수 72, i는 105입니다. 72를 2진수로 쓰면 1001000(7자리)이므로 앞에 0을 붙여 01001000, 105는 1101001이므로 01101001입니다. 두 바이트를 공백으로 이으면 01001000 01101001입니다.
  2. "가"(U+AC00)를 세 바이트로. AC00을 2진수로 쓰면 1010 1100 0000 0000(16비트)입니다. 3바이트 형식은 1110xxxx 10xxxxxx 10xxxxxx이므로 16비트를 4비트·6비트·6비트로 나눠 xxxx 자리에 채웁니다. 1010 / 110000 / 000000이므로 11101010 10110000 10000000이 되고, 16진수로는 ea b0 80입니다. "한"(U+D55C)은 같은 방식으로 ed 95 9c가 됩니다.

복원은 반대 방향입니다. 첫 바이트의 앞자리 비트로 길이를 알아내고, 각 바이트에서 표시 비트(1110, 10)를 떼어 낸 나머지 비트를 이어 붙이면 원래의 코드포인트가 나옵니다.

입력 형식별 동작 예시

입력할 때 알아둘 점과 한계

실무에서 이 변환이 쓰이는 상황

바이트 값이 아니라 글자 하나의 번호(코드포인트)가 필요하다면 이 도구가 아닌 유니코드 조회 도구를 쓰세요. 예를 들어 "가"의 코드포인트는 U+AC00이고 바이트는 ea b0 80으로, 둘은 같은 값이 아닙니다.

결과 활용법

웹 개발에서 URL에 한글이 퍼센트 인코딩(%EA%B0%80)으로 바뀐 값은 위 16진수 바이트 앞에 %를 붙인 것과 같으므로,URL 인코더의 결과와 대조해 볼 수 있습니다. 숫자 하나의 진법을 바꾸려면진법 변환기, 문자 한 개의 코드포인트를 조회하려면유니코드 문자 정보 조회기, 글자 수와 바이트 수를 함께 세려면 텍스트 바이트 계산기가 더 알맞습니다. 바이트를 텍스트 안전 문자열로 옮기는 Base64는 Base64 변환기를 이용하세요.

자주 묻는 질문

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

네. 이모지는 대부분 4바이트(예: 😀는 f0 9f 98 80)입니다. 가족·국기 이모지처럼 여러 이모지를 이어 붙인 조합형은 구성 요소마다 4바이트가 이어져 수십 바이트가 될 수 있습니다.

코드 사이 공백을 빼고 붙여넣으면 안 되나요?

2진수는 공백이 필요합니다. 8자리씩 끊으면 되지만 마지막 덩어리의 자릿수가 불확실해 도구가 임의로 추정하지 않습니다. 16진수는 짝수 자리로 이어진 한 덩어리라면 두 자리씩 자동으로 끊어 읽습니다.

한글이 영어보다 코드가 3배 긴 이유는 무엇인가요?

UTF-8은 영어 호환성을 위해 U+007F 이하를 1바이트로 두고, 한글 음절(U+AC00~U+D7A3)은 3바이트 범위에 속하기 때문입니다. "Hello"는 5바이트, "안녕하세요"는 15바이트입니다. 문자 수 기준이 아니라 바이트 기준 제한(일부 DB 필드, 문자 메시지 등)에서 차이가 납니다.

2진수 코드의 앞쪽 0을 생략해도 되나요?

복원 입력에서는 1~8자리 모두 허용하므로 생략해도 읽힙니다(예: 1001000은 72). 다만 변환 출력은 읽기 쉽도록 항상 8자리로 맞춥니다.

줄바꿈이나 탭도 변환되나요?

네. 줄바꿈(LF)은 0a(00001010), 탭은 09, 공백은 20으로 변환됩니다. Windows에서 복사한 글의 줄바꿈이 CRLF라면 0d 0a 두 바이트로 나올 수 있습니다. 단, 브라우저 입력창은 줄바꿈을 LF로 정규화하는 경우가 많습니다.

결과의 문자 수와 제 글자 수 세기가 다릅니다.

결과 아래 "문자 N개"는 코드포인트 개수입니다. 국기나 가족 이모지처럼 여러 코드포인트가 이어져 한 글자로 보이는 것, 또는 결합 문자가 붙은 글자는 눈으로 센 글자 수보다 크게 나옵니다. 위 표의 국기 이모지가 그 예입니다.

한글 자모(ㄱ, ㅏ)와 완성형 글자(가)의 코드는 같은가요?

다릅니다. 단독 자모와 완성된 음절은 서로 다른 코드포인트이며, 같은 "가"처럼 보여도 자모를 조합해 만든 글자와 완성형 글자는 바이트가 다를 수 있습니다. 눈에 같아 보이는 텍스트를 비교할 때 이 도구로 바이트를 풀어 보면 차이를 찾을 수 있습니다.

변환한 코드를 다른 프로그램에 그대로 붙여넣어 쓸 수 있나요?

16진수 결과는 바이트 단위 값이므로 헥스 에디터나 프로그램의 바이트 배열에 옮겨 쓸 수 있지만, 언어마다 접두사(0x)나 구분자 형식이 다르니 맞게 고쳐야 합니다. 이 도구의 결과는 소문자 두 자리를 공백으로 구분한 평문 형식입니다.

비트열을 8개씩이 아니라 7개씩 끊은 옛 ASCII 자료는 어떻게 하나요?

복원 입력은 1~8자리 2진수를 한 바이트로 읽으므로 7자리씩 공백으로 구분한 값도 ASCII 범위(0~127)라면 그대로 복원됩니다. 다만 8비트 단위로 묶은 UTF-8 바이트열이라는 전제는 같으므로, 글자 사이를 공백으로 구분해 입력해야 합니다.