텍스트를 16진수로 변환이란?

텍스트를 헥스로 변환하는 도구로, 텍스트를 16진수 바이트로 바꿉니다. 각 문자가 헥스 값에 대응하며, 디버깅이나 네트워크 분석, 바이너리 프로토콜 확인에 유용합니다.

기본적으로 UTF-8을 사용하므로 악센트가 있는 라틴 문자, 키릴 문자, CJK, 아랍어, 이모지가 모두 올바른 바이트 시퀀스로 변환됩니다. 레거시 시스템이나 프로토콜에 맞추려면 인코딩을 UTF-16, ASCII, Latin-1로 바꿀 수 있습니다. 출력은 공백, 콜론, 쉼표 또는 구분자 없이 형식을 지정하고, C 스타일 배열을 위해 각 바이트 앞에 `0x`를 붙이며, 대소문자를 전환할 수 있습니다. 직접 입력하거나 클립보드에서 붙여넣거나 텍스트 파일을 업로드하세요. 역변환 모드는 hex 문자열을 다시 텍스트로 파싱하며 여분의 공백이나 `0x` 접두사도 허용합니다.

사용 방법

  1. 입력란에 텍스트를 입력하거나 붙여넣고, 붙여넣기 버튼으로 클립보드에서 가져오거나, 텍스트 파일을 업로드하세요.
  2. hex 형식을 선택하세요: 인코딩(UTF-8, UTF-16, ASCII, Latin-1), 구분자(공백, 쉼표, 콜론, 없음), 접두사(0x), 대문자 또는 소문자, 그리고 hex 덤프 형태를 위한 선택적 바이트 묶기.
  3. 헥스 출력을 복사하여 코드나 문서에 사용하세요. 헥스를 다시 텍스트로 변환할 수도 있습니다.

사용 시기

  • 이진 프로토콜로 문자열을 보내기 전에 실제 바이트열을 확인하고 싶을 때.
  • 비-ASCII 내용을 C, Rust, Go 소스에 바이트 배열 형태로 넣을 때.
  • 기대한 바이트와 실제 바이트를 비교해 인코딩 문제를 추적할 때.

결과

'Hello World'를 입력하면 공백 구분으로 '48 65 6C 6C 6F 20 57 6F 72 6C 64'를, 0x 접두사 붙여 '0x48,0x65,0x6C...'(C 배열용)을 얻습니다.

자주 묻는 질문

변환기는 어떤 문자 인코딩을 사용하나요?
기본값은 UTF-8이며 인코딩 줄에서 UTF-16, ASCII, Latin-1을 선택할 수 있습니다. UTF-8에서는 일반 ASCII 문자가 각각 1바이트(A → 41)이고 이모지와 CJK는 여러 바이트로 확장됩니다(😀 → F0 9F 98 80). 이는 파일, HTTP 본문, 대부분의 API가 실제로 보내는 형태와 같습니다. 1바이트 레거시 텍스트에는 Latin-1을, 7비트를 넘는 값을 표시하려면 ASCII를 선택하세요.
이모지 하나가 왜 hex 네 쌍으로 나오나요?
이모지와 많은 비라틴 문자는 코드 포인트가 0x7F를 넘기 때문에 UTF-8은 2, 3, 4바이트로 표현합니다. 예를 들어 🚀 한 글자는 네 쌍(F0 9F 9A 80)이 되고, 각 쌍은 그 멀티바이트 시퀀스의 한 바이트입니다.
구분자가 섞인 hex 입력도 역변환되나요?
됩니다. 디코더는 `0x` 접두사를 제거하고 공백, 콤마, 콜론, 하이픈을 무시한 뒤 hex 자리에 해당하는 문자만 이어 붙입니다. 그래서 `0x48,0x65 6C-6C:6F`와 `48656C6C6F`는 모두 "Hello"로 돌아갑니다.
`0x` 접두사를 붙이는 경우와 그렇지 않은 경우의 차이는?
표기법 선택의 문제입니다. `0x48`은 C, C++, Rust, Go 소스 코드의 표준 표현이고 접두사 없는 `48`은 hex 덤프, 패킷 캡처, 대부분의 네트워크 도구에서 쓰입니다. 코드에 붙일 때는 접두사를 쓰고 로그 출력에서는 빼는 편입니다.
이 출력을 해싱 같은 암호 용도에 그대로 써도 되나요?
결과는 원시 UTF-8 바이트이며, 이는 대부분의 해시·HMAC 알고리즘이 요구하는 올바른 첫 단계입니다(이 알고리즘들은 문자가 아니라 바이트를 처리합니다). 그 바이트열을 해시 도구에 넘겨 주세요. hex 문자열 자체가 해시는 아닙니다.

관련 도구