텍스트 - ASCII/유니코드 코드 변환기

텍스트를 10진수 문자 코드 목록으로 변환하고 다시 되돌립니다 — 7비트 ASCII뿐 아니라 유니코드 전체 범위를 지원합니다.

조회수 1,069회

작동 원리

입력한 각 문자는 하나씩 순회되며 유니코드 코드 포인트로 변환됩니다 — 이는 처음 128개 값(0부터 127까지)이 바로 원래의 ASCII 표인 동일한 번호 체계입니다. 그 범위 안에서 코드 32-126은 인쇄 가능한 블록을 이룹니다: 문자, 숫자, 문장 부호, 공백 문자입니다. 코드 0-31은 제어 문자로, 문자를 인쇄하는 대신 인쇄 헤드나 종이를 움직이기 위해 특정 코드를 사용하던 텔레프린터와 타자기 시절부터 남은 역사적인 흔적입니다 — 코드 13(캐리지 리턴)은 헤드를 줄의 맨 앞으로 되돌렸고, 코드 10(라인 피드)은 종이를 한 줄 진행시켰습니다. 이렇게 둘로 나뉘어 있었기 때문에, 서로 다른 운영체제의 일반 텍스트 파일이 지금도 줄바꿈을 저장하는 방식에서 서로 다릅니다.

예시: "Hi!"를 입력하면 코드 목록 72, 105, 33이 만들어집니다 — 대문자 H는 72, 소문자 i는 105, 느낌표는 33이며, 모두 인쇄 가능한 32-126 범위 안에 있습니다. 이 목록을 디코더에 다시 붙여넣으면 "Hi!"가 문자 그대로 정확히 재구성됩니다.

이 도구가 교과서적인 ASCII 표를 뛰어넘는 지점은 코드 128 이상입니다. 흔히 "확장 ASCII"라고 불리는 이 상위 범위는 표준화된 적이 한 번도 없습니다: 여러 공급업체와 지역이 저마다 다른 256개 값의 코드 페이지를 만들어, 같은 바이트에 서로 다른 글리프를 배정했습니다. 어떤 튀르키예어 코드 페이지에서 "ğ"를 의미하던 바이트가 다른 시스템의 코드 페이지에서는 전혀 다른 문자를 의미하거나 아예 인쇄할 수 없는 값을 의미할 수도 있습니다. 바로 이 불일치가 UTF-8과 전체 유니코드 코드 포인트가 해결하도록 만들어진 문제입니다: 코드 페이지에 따라 의미가 달라지는 문자당 1바이트 방식 대신, 모든 문자가 어디서나 동일한 의미를 갖는 안정적인 숫자 식별자를 갖게 됩니다. 이런 이유로 이 변환기는 각 문자를 한 바이트로 잘라내지 않고 전체 유니코드 코드 포인트로 인코딩하므로, ğ, ş, ı, ö, ü, ç 같은 튀르키예어 문자와 이모지도 모두 안정적으로 변환됩니다.

알아두어야 할 점

  • 인쇄 가능 범위: 코드 32-126은 어떤 시스템에서든 항상 눈에 보이는 문자에 대응합니다. 그 외의 값은 올바르게 해석하려면 맥락(폰트, 코드 페이지, 또는 전체 유니코드)이 필요합니다.
  • 제어 코드에는 글리프가 없습니다: 0-31(또는 127, DEL) 범위의 값을 텍스트로 디코딩해도 인쇄 가능한 문자가 나타나지 않습니다 — 이 코드들은 애초에 화면에 표시되도록 만들어진 것이 아니므로, 이는 오류가 아니라 정상적인 동작입니다.
  • 바이트 255를 넘어서: 유니코드 코드 포인트는 옛 256값 상한을 훨씬 뛰어넘습니다 — 예를 들어 이모지는 수십만대의 값에 위치합니다 — 이 도구는 한 바이트 분량만이 아니라 전체 범위를 처리합니다.
  • 무손실 왕복 변환: 인코딩한 뒤 디코딩하면 항상 원래 텍스트를 정확히 그대로 돌려받습니다. 각 코드 포인트가 근사치나 압축 없이 문자 하나에 정확히 대응하기 때문입니다.
  • 완전히 브라우저 안에서 실행됩니다: 어떤 텍스트도 어디로도 전송되지 않으므로, 디버깅을 위해 민감한 문자열, 토큰, 비밀번호를 변환해도 안전합니다.

자주 묻는 질문

이것은 정말 ASCII인가요, 아니면 다른 건가요?

진짜 7비트 ASCII는 코드 0~127(영문자, 숫자, 기본 문장부호)만 다룹니다. 이 도구는 같은 개념을 사용하되 전체 유니코드 코드 포인트까지 확장했기 때문에, 억양 부호가 있는 문자나 이모지도 깨지지 않고 올바르게 변환됩니다.

코드 목록은 어떤 구분자를 사용하나요?

기본적으로 각 코드 뒤에 공백이 붙은 쉼표를 사용합니다 — 하지만 디코더는 단순한 공백이나 줄바꿈으로 구분된 코드도 인식합니다.

코드 10과 코드 13의 차이는 무엇인가요?

둘 다 역사적으로 줄바꿈을 나타내던 제어 문자입니다: 코드 10은 "라인 피드"(한 줄 아래로 이동)이고, 코드 13은 "캐리지 리턴"(줄의 맨 앞으로 이동)입니다. Unix는 LF만 사용하고, 클래식 Mac은 CR만 사용했으며, Windows는 둘을 함께 사용합니다(CRLF) — 이 차이는 물리적인 텔레타이프 장치까지 거슬러 올라갑니다.

127 이상의 코드가 다른 도구에서는 왜 다르게 보이나요?

그 범위가 한 번도 표준화된 적이 없기 때문입니다. 공급업체마다 저마다의 "확장 ASCII" 코드 페이지가 128-255 바이트에 자신만의 글리프를 배정했으므로, 같은 바이트 값이 시스템에 따라 다른 문자로 해석될 수 있습니다. 이 도구는 고정된 256값 표 대신 전체 유니코드로 작동함으로써 이 문제를 완전히 피해 갑니다.

이모지나 그 밖의 멀티바이트 문자도 처리할 수 있나요?

네 — 이모지를 비롯한 많은 기호는 255를 훨씬 넘는 코드 포인트에 위치하며, 이 도구는 각각을 전체 10진수 유니코드 값으로 변환합니다(국기 이모지처럼 실제로는 두 개의 코드 포인트로 이루어진 이모지도 있는데, 이 경우 목록에는 두 개의 별도 숫자로 표시됩니다).

댓글

아직 댓글이 없습니다 — 첫 댓글을 남겨보세요!

비슷한 도구