2진수 → 텍스트 변환기

→
2진수 → UTF-8 바이트당 8비트 → 문자로 디코딩

2진수 → 텍스트: 바이트를 풀어내고, 못 풀 때를 아는 법

이 변환이 하는 일

2진 바이트 열을 읽어 UTF-8 텍스트로 디코딩합니다. 여덟 비트가 한 바이트가 되고 한 문자가 여러 바이트를 차지할 수 있어서 바이트를 모아 함께 해독합니다. 진짜 일은 이 해독 단계에서 일어납니다. 바이트 경계는 문자 경계에 대해 아무것도 알려주지 않습니다.

디코더가 문자의 끝을 아는 방법

각 바이트의 선두 비트가 자기 역할을 알립니다. 0으로 시작하면 단독이고 110으로 시작하면 2바이트 문자의 시작, 1110은 3바이트, 11110은 4바이트 문자의 시작이며 연속 바이트는 10으로 시작합니다. 이 구조 덕분에 디코더가 문자 위치를 따로 통보받지 않고도 흐름을 따라갈 수 있습니다.

2진수 → 텍스트 변환표

바이트 열과 그것이 디코딩되는 텍스트입니다. 여러 바이트 행은 선두 비트 패턴이 제 몫을 하는 모습을 보여주고, 마지막 행은 인쇄 가능한 텍스트가 아닌 원시 바이트가 어떻게 보이는지 보여줍니다.

2진수텍스트
01000001A
01100001a
01001000 01101001Hi
01001111 01001011OK
00110001 00110010 00110011123
11100100 10111000 10101101中

글자가 깨지는 이유

깨진 텍스트는 거의 항상 잘못된 인코딩으로 해독했거나 엉뚱한 위치에서 잘랐다는 뜻입니다. UTF-8을 1바이트 인코딩인 양 해독하면 3바이트 문자가 무관한 기호 셋으로 흩어지고, 앞에서 바이트 하나가 빠지면 뒤따르는 모든 문자가 밀립니다. 두 실패 모두 무작위 문장부호처럼 보이고 글자가 아니라 바이트를 봐야 진단됩니다.

바이트 묶음을 그대로 유지하세요

여덟 자리 묶음을 완전한 단위로 복사하세요. 바이트 중간에서 붙여 넣기 시작하면 디코더가 이해할 수 없는 열이 만들어지고, 이어지는 오류는 정확하지만 붙여 넣기가 어디서 시작됐는지에 대해서는 말해 주지 않습니다.

자주 묻는 질문

2진수를 다시 텍스트로 바꾸려면 어떻게 하나요?

2진수를 여덟 자리씩 나누고 각 묶음을 한 바이트로 본 다음 바이트를 UTF-8로 디코딩합니다. 알파벳 A는 01000001이라 묶음 하나가 문자 하나로 풀리고, 더 긴 열은 여러 묶음에 걸친 문자를 포함한 더 긴 문자열이 됩니다.

이상한 문자가 아니라 오류가 나오는 이유는 무엇인가요?

그 바이트 열이 올바른 UTF-8이 아니기 때문입니다. 중간에 잘렸거나 순서가 어긋났거나 아예 텍스트가 아닐 수 있습니다. 거부하는 것은 의도된 동작입니다. 대체 문자를 끼워 넣으면 진짜 문제가 텍스트가 아니었다는 사실이 가려진 채 해독 문제처럼 보이는 출력이 나옵니다.

바이트 사이에 공백이 없는 2진수도 붙여 넣을 수 있나요?

됩니다. 길이가 8의 배수인 연속 문자열은 자동으로 바이트로 나뉘므로 구분자를 생략한 곳에서 복사한 2진수도 형식을 고치지 않고 변환됩니다. 띄어 쓴 형태와 붙여 쓴 형태는 같은 뜻입니다.

127을 넘는 바이트가 홀로 있으면 무슨 뜻인가요?

그것이 문자 자체가 아니라 여러 바이트 문자의 일부라는 뜻입니다. 그 범위의 바이트가 홀로 있으면 올바른 UTF-8 의미가 없어 거부되며, 속해 있던 문자가 불완전하므로 그 판단이 맞습니다.

어떤 언어의 텍스트든 되나요?

UTF-8이 표현할 수 있는 것은 모두 됩니다. 악센트가 있는 라틴 문자와 키릴 문자, 아랍 문자, 중국어, 일본어, 한국어, 이모지까지 사실상 현재 쓰이는 모든 문자 체계가 포함됩니다. 이 사이트의 텍스트 → 2진수 도구가 만든 열은 언제나 처음 텍스트 그대로 되돌아옵니다.

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

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