텍스트 16진수 변환기 사용법
- 텍스트를 입력하거나 붙여넣으세요. 한글을 비롯한 모든 언어와 이모지를 지원합니다.
- 문자 인코딩(표준은 UTF-8), 대소문자, 바이트 구분 방식을 선택하세요. 헥사 덤프 형태로 보려면 16바이트마다 줄바꿈에 체크하세요.
- 16진수 문자열을 복사하거나 텍스트 파일로 다운로드하세요.
텍스트가 16진수로 변환되는 원리
컴퓨터는 텍스트를 바이트로 저장합니다. 변환기는 선택한 인코딩에서 각 문자의 바이트 값을 찾아 16진수 두 자리로 씁니다. ASCII와 UTF-8에서 A는 65 = 41, a는 97 = 61, 공백은 32 = 20이므로 “Hi!”는 48 69 21이 됩니다.
| 문자 | 10진수 | 16진수 |
|---|---|---|
A … Z | 65 … 90 | 41 … 5A |
a … z | 97 … 122 | 61 … 7A |
0 … 9 | 48 … 57 | 30 … 39 |
| 공백 | 32 | 20 |
! | 33 | 21 |
| 줄바꿈 | 10 | 0A |
UTF-8, Latin-1, UTF-16 비교
같은 문자라도 인코딩에 따라 바이트가 달라질 수 있습니다. 웹, JSON, 대부분의 파일에는 UTF-8이 적합하며, 받는 쪽 시스템이 요구할 때만 다른 인코딩을 사용하세요.
| 텍스트 | UTF-8 | Windows-1252 | UTF-16 LE |
|---|---|---|---|
A | 41 | 41 | 41 00 |
é | C3 A9 | E9 | E9 00 |
€ | E2 82 AC | 80 | AC 20 |
| 😀 | F0 9F 98 80 | 표현 불가 | 3D D8 00 DE |
코드에서 문자열을 16진수로 변환하기
- Python:
'Hello'.encode().hex()의 결과는48656c6c6f이며,.hex(' ')를 쓰면 공백이 추가됩니다. - Node.js:
Buffer.from('Hello').toString('hex') - 브라우저 JavaScript:
[...new TextEncoder().encode('Hello')].map((b) => b.toString(16).padStart(2, '0')).join('') - Linux 및 macOS:
echo -n 'Hello' | xxd -p
자주 묻는 질문
텍스트 16진수 변환과 ASCII 16진수 변환은 같은가요?
영문자, 숫자, 문장 부호라면 같습니다. ASCII와 UTF-8이 같은 바이트를 만들기 때문입니다. 반면 é, ß, Ж, 中, 한글, 이모지 같은 문자는 ASCII에 없으며, UTF-8은 이러한 문자를 각각 2–4바이트로 인코딩합니다.
한 글자가 여러 개의 16진수 바이트가 되는 이유는 무엇인가요?
UTF-8에서 1바이트로 표현되는 것은 ASCII 문자뿐입니다. é는 C3 A9, €는 E2 82 AC가 되고, 한글은 3바이트, 대부분의 이모지는 4바이트를 차지합니다. 대상 시스템이 UTF-16이나 Latin-1을 요구한다면 해당 인코딩을 선택하세요.
어떤 구분자를 사용해야 하나요?
해시나 간결한 문자열에는 구분자 없음, 읽기 쉬운 헥사 덤프에는 공백, MAC 주소와 인증서 지문에는 콜론, C·C#·Java 배열에는 0x48, 0x65, C·Python·셸 스크립트의 문자열 리터럴에는 \x48 형식을 사용하세요.
16진수를 다시 텍스트로 바꾸려면 어떻게 하나요?
방향 바꾸기를 누르세요. 16진수가 입력란으로 옮겨지고 같은 인코딩으로 디코딩됩니다. 디코더는 여기서 제공하는 모든 구분자를 인식합니다.