텍스트 → 2진수 변환기

→
텍스트 → UTF-8 바이트 → 바이트마다 2진수 8자리, 공백으로 구분

텍스트 → 2진수: 문자열이 바이트 수준에서 보이는 모습

이 변환이 하는 일

텍스트를 UTF-8로 인코딩해 바이트로 만들고 각 바이트를 2진수 여덟 자리로 씁니다. 여기에는 산술이 없습니다. 문자가 표에서 조회되어 그대로 적힐 뿐인데, 그 결과는 그 문자열을 위해 실제로 저장되거나 전송될 1과 0의 나열입니다.

왜 순수 ASCII가 아니라 UTF-8인가

ASCII는 128자만 정의해서 영어는 편안히 덮지만 나머지는 전혀 덮지 못합니다. UTF-8은 앞 128개 코드를 ASCII와 똑같이 두고 나머지를 2바이트와 3바이트와 4바이트로 확장합니다. 그래서 영어 문자열은 ASCII와 같은 바이트를 내면서 한글이나 이모지도 함께 처리합니다.

텍스트 → 2진수 변환표

짧은 문자열과 그 2진 바이트 열입니다. 여러 바이트로 된 행이 흥미로운데, 한 문자가 어떻게 여러 바이트 묶음이 되는지 보여주고 각 바이트에는 알아볼 수 있는 선두 비트 패턴이 있습니다.

텍스트2진수
A01000001
Hi01001000 01101001
OK01001111 01001011
12300110001 00110010 00110011
!00100001
Go01000111 01101111

예상하지 못한 바이트

텍스트를 다룰 때 가장 흔한 놀라움은 보이는 것보다 긴 문자열입니다. 다섯 글자가 다섯 바이트일 수도 열다섯 바이트일 수도 있고, 글자 수로 적은 길이 제한은 바이트로 적은 제한에 의해 위반됩니다. 바이트 열을 보면 분명해집니다. 여러 바이트 문자의 각 바이트는 선두 비트로 몇 바이트를 차지하는지 스스로 알립니다.

바이트 수와 글자 수는 다릅니다

데이터베이스 칼럼이나 API 제한, 헤더 필드가 바이트로 측정된다면 글자가 아니라 바이트를 세세요. 이 변환기는 바이트 열을 그대로 보여주므로 묶음의 개수가 곧 바이트 수이고, 그 수가 바로 그 제한들이 실제로 확인하는 값입니다.

자주 묻는 질문

텍스트는 어떻게 2진수가 되나요?

각 문자를 UTF-8 인코딩 표에서 찾아 바이트 값으로 바꾸고, 각 바이트를 2진수 여덟 자리로 씁니다. 알파벳 A는 바이트 65이고 01000001이며 원래 ASCII 범위 안이라 정확히 1바이트를 씁니다.

한글 한 글자가 왜 여러 바이트인가요?

UTF-8이 256자를 훨씬 넘는 문자를 담아야 해서 앞 128개를 벗어난 문자를 2바이트와 3바이트와 4바이트에 나누어 담기 때문입니다. 한글 한 음절은 보통 3바이트를 차지하므로 여기서는 여덟 자리 묶음 하나가 아니라 세 개로 나타납니다.

ASCII와 같은 건가요?

순수한 영어 텍스트라면 그렇습니다. UTF-8은 앞 128개 코드가 ASCII와 바이트 단위로 같도록 설계되어 Hello는 두 방식에서 똑같이 인코딩됩니다. 악센트 글자나 통화 기호를 쓰는 순간 갈라지는데, ASCII에는 내놓을 것이 없고 UTF-8에는 있습니다.

바이트를 왜 공백으로 구분하나요?

2진수가 죽 이어져 있으면 읽기 어렵고 세기 쉬우며, 여덟 자리씩 띄어 놓으면 바이트 경계가 그대로 드러나기 때문입니다. 입력에서 공백은 디코딩할 때 무시되므로 이 페이지에서 복사한 열을 반대 방향으로 그대로 붙여 넣을 수 있습니다.

이모지도 처리되나요?

됩니다. 이모지는 3바이트로 닿을 수 있는 범위보다 위에 있어서 UTF-8은 대부분을 4바이트로 인코딩하며, 여기서는 여덟 자리 묶음 네 개로 나타납니다. 그래서 이모지 하나가 인코딩되면 짧은 영어 단어보다 길어질 수 있습니다.

아래 코드를 복사하여 웹사이트에 붙여넣으면 이 변환기를 추가할 수 있습니다.

<!-- 텍스트를 2진수로 -->
<iframe src="https://unitflow.net/ko/embed/text-to-binary" title="텍스트를 2진수로" width="100%" height="420" loading="lazy" style="border:0;max-width:100%;display:block"></iframe>
<p><a href="https://unitflow.net/ko/text-to-binary" target="_blank" rel="noopener">UnitFlow 제공</a></p>