텍스트와 8진수 상호 변환기

텍스트의 각 바이트를 세 자리 8진수로 표기하거나, 8진수 바이트 값 목록을 읽을 수 있는 텍스트로 되돌립니다. UTF-8과 여러 레거시 문자 인코딩을 지원합니다.

브라우저에서만 실행되며 어떤 데이터도 업로드되지 않습니다.

사용 방법

  1. 텍스트를 8진수로 바꾸려면 ‘인코딩’을, 8진수 값을 텍스트로 되돌리려면 ‘디코딩’을 선택합니다.
  2. 내용을 입력하거나 붙여넣고, 파일의 바이트를 변환하려면 파일을 엽니다.
  3. 출력에 사용할 ‘구분자’를 ‘공백’, ‘없음’, ‘쉼표’, ‘줄 바꿈’ 중에서 선택합니다.
  4. 결과를 복사하거나 파일로 다운로드합니다.

8진수란?

8진수(Base8)는 0부터 7까지의 숫자로 수를 표기합니다. 8진수 한 자리는 정확히 3비트에 해당하므로, 12비트 PDP-8이나 36비트 PDP-10처럼 워드 크기가 3의 배수였던 초기 컴퓨터에서 널리 쓰였습니다. 오늘날에는 주로 이스케이프 시퀀스와 Unix 파일 권한에 남아 있습니다.

한 바이트는 0부터 255까지의 값을 가지며, 이는 8진수로 0부터 377입니다. 이 변환기는 입력의 모든 바이트를 앞자리 0을 채워 정확히 세 자리 8진수로 표기하므로 모든 묶음의 폭이 같고, 구분자 없이 이어 붙여도 됩니다. 텍스트는 먼저 선택한 문자 인코딩에 따라 바이트로 바뀝니다. 일반 ASCII는 문자당 1바이트이고, UTF-8에서 그 밖의 문자는 문자당 2~4바이트입니다.

8진수 이스케이프 시퀀스

C, C++, Python, Perl과 셸의 printf에서는 백슬래시 뒤에 최대 세 자리 8진수를 붙여 바이트 하나를 표현할 수 있습니다. \101은 문자 A이고 \012는 줄 바꿈 문자(LF)입니다.

이 도구는 백슬래시 없이 숫자만 출력합니다. 이스케이프된 문자열을 만들려면 공백으로 구분된 출력에서 각 공백을 백슬래시로 바꾸고 첫 번째 묶음 앞에도 백슬래시를 하나 붙이십시오. 이스케이프 시퀀스를 디코딩하려면 반대로 백슬래시를 공백으로 바꾸십시오. 디코더는 숫자와 구분자만 받아들이기 때문입니다.

755 같은 파일 권한도 8진수이지만 텍스트가 아니라 숫자입니다. 이런 숫자를 2진수나 10진수로 바꾸려면 진법 변환기를 사용하십시오.

코드에서 8진수 다루기

# Python
' '.join(f'{b:03o}' for b in 'Hi'.encode())            # '110 151'
bytes(int(o, 8) for o in '110 151'.split()).decode()   # 'Hi'

# Shell
printf '\110\151\n'        # Hi 출력
printf 'Hi' | od -An -to1   # 110 151

사양

알파벳0-7
출력 크기바이트당 3자리(300%)
패딩없음
표준8진 자릿값 표기
대소문자 구분아니요

예시

입력 (UTF-8)출력
Hello, World!110 145 154 154 157 054 040 127 157 162 154 144 041
Base64.is102 141 163 145 066 064 056 151 163
你好344 275 240 345 245 275

자주 묻는 질문

모든 바이트가 세 자리 8진수인 이유는 무엇입니까?

가장 큰 바이트 값인 255는 8진수로 377이므로 세 자리면 항상 충분합니다. 작은 값의 앞자리를 0으로 채우면 모든 묶음의 폭이 같아지며, 그래서 구분자가 없는 문자열도 바이트 단위로 다시 나눌 수 있습니다.

공백 없는 8진수는 어떻게 디코딩합니까?

숫자를 하나로 이어진 문자열 그대로 붙여넣으십시오. 디코더가 세 자리씩 나누므로 길이가 3의 배수여야 합니다. 세 자리보다 짧은 값이 있다면 대신 공백, 쉼표, 줄 바꿈으로 구분하십시오.

400 같은 값이 거부되는 이유는 무엇입니까?

8진수 400은 256이므로 한 바이트에 들어가지 않습니다. 올바른 바이트 값은 0부터 377까지이며, 디코더는 이 범위를 벗어난 묶음의 위치를 알려 줍니다. 숫자 8과 9는 애초에 8진수 숫자가 아닙니다.

다른 문자 인코딩 기준의 8진수 값을 얻을 수 있습니까?

예. ‘문자 인코딩’ 메뉴에서 원하는 인코딩을 선택하십시오. 예를 들어 서유럽 문자를 문자당 1바이트로 표현하려면 Windows-1252나 ISO-8859-1을, 한국어 텍스트에는 EUC-KR을, 중국어와 일본어 텍스트에는 GBK나 Shift_JIS를 선택합니다.