텍스트를 8진수로 변환이란?
텍스트를 8진수로 변환하는 도구로, 텍스트를 기수 8 바이트 값으로 바꿉니다. 각 문자가 세 자리 8진수가 되며, Unix 권한이나 C 이스케이프 시퀀스에서 흔히 볼 수 있는 형식입니다.
각 문자는 8진수로 변환됩니다. 기본값은 UTF-8 바이트 인코딩입니다 — 3자리 8진수면 한 바이트(000~377)를 표현할 수 있어서, Unix chmod는 여전히 권한을 8진수로 적고 C, Python, 셸 스크립트에서도 인쇄 불가 바이트를 \nnn 형식으로 이스케이프할 수 있습니다. 원본 유니코드 코드포인트가 필요하면 코드포인트 모드로 전환해 문자 하나에 8진수 한 개를 얻으세요. 두 모드 모두 역변환을 지원하며, 8진수를 붙여 넣으면 0~7 숫자 검증을 거쳐 원본 텍스트가 복원됩니다.
사용 방법
- 8진수로 변환하려는 텍스트를 입력 필드에 직접 입력하거나 붙여넣으세요.
- 인코딩(UTF-8 바이트 또는 원본 코드포인트), 구분자(공백·쉼표·하이픈·줄바꿈), 접두사 스타일(없음·\NNN·0o·%), 앞 0 채움 여부를 지정하세요.
- 8진수 출력을 복사하여 스크립트나 문서에 사용하세요. 역변환 모드로 전환하면 8진수를 다시 텍스트로 바꿀 수 있습니다.
사용 시기
- C 문자열 리터럴에 인쇄 불가 문자를 \\NNN 형태로 삽입할 때.
- 설정 파일이나 로그에 8진수로 덤프된 바이트 시퀀스를 해독할 때.
- 한글 같은 비 ASCII 문자가 UTF-8에서 여러 8진 트리플렛으로 쪼개지는 모습을 설명할 때.
결과
'Hello'를 입력하면 '110 145 154 154 157'(공백 구분) 또는 '\\110\\145\\154\\154\\157'(C 문자열용 백슬래시 접두사)을 얻습니다.
자주 묻는 질문
- 왜 '가' 같은 글자 하나가 여러 개의 8진수로 나오나요?
- ASCII 0~127 범위를 벗어나는 문자는 UTF-8에서 여러 바이트로 저장됩니다. '가'는 3바이트(0xEA 0xB0 0x80)라 8진수로 352 260 200으로 표시됩니다. 알파벳·숫자 같은 ASCII는 항상 1바이트입니다.
- 0 채움과 미채움 출력의 차이는 무엇인가요?
- 0을 채우면 모든 바이트가 3자리(공백은 40이 아닌 040)로 고정되어 C의 \\NNN 이스케이프 폭에 그대로 맞습니다. 채우지 않으면 짧지만, 소스 코드에서 옆 숫자와 붙어 다른 값으로 읽힐 위험이 있습니다.
- 접두사 스타일(\110, 0o110, %110)은 무엇인가요?
- 각 8진 값을 감싸서 코드에 바로 붙여 넣을 수 있게 합니다. 백슬래시(\110\145…)는 C, C++, 셸 문자열에 들어가며 컴파일하면 원래 텍스트로 돌아옵니다. 0o110은 Python과 JavaScript에서 바로 실행되는 8진 리터럴입니다. %110은 퍼센트 표기로, URL 인코딩 값과 대조할 때 편리합니다. None으로 두면 사람이 읽기 좋은 순수한 숫자 목록이 됩니다.
- chmod 권한 숫자와 같은 8진수인가요?
- 수 체계는 같지만 chmod는 비트 플래그를 인코딩합니다. 각 자리수는 한 사용자 그룹의 읽기·쓰기·실행 비트를 묶은 것이고, 표현 대상이 문자가 아니라 권한입니다.
- od나 hexdump가 출력한 8진수를 그대로 디코딩할 수 있나요?
- 가능합니다. 역변환 모드로 바꾸고 공백·쉼표·줄바꿈·백슬래시로 구분된 트리플렛을 그대로 붙여 넣으세요. UTF-8 멀티바이트 시퀀스까지 포함해 원문이 재구성됩니다. 숫자 8이나 9가 포함된 그룹, UTF-8 모드에서 0377을 넘는 값은 즉시 표시되어 복사·붙여넣기 실수를 바로 잡을 수 있습니다.