퓨니코드 변환기 (IDN ⇆ xn--)

국제화 도메인 이름을 유니코드와 ASCII xn-- 퓨니코드 형식 사이에서 라벨 단위로, RFC 3492에 따라 양방향 변환합니다.

xn--으로 시작하는 형태가 DNS·브라우저·등록기관이 실제로 저장하는 이름입니다. 한글이나 악센트가 든 도메인은 이 ASCII 문자열로 전송되고, 주소창이 다시 원래 글자로 보여줄 뿐입니다.

링크 전체도 됩니다. 스킴(https://)으로 시작하면 호스트만 바뀌고, 포트·경로·쿼리·프래그먼트는 입력한 그대로 남습니다.

xn-- 이름을 풀어 보면 링크가 실제로 어떤 글자로 되어 있는지 알 수 있습니다. 공격자는 한 글자를 다른 문자 체계의 똑같이 생긴 글자로 바꾼 도메인(라틴 a 대신 키릴 а)을 등록해 익숙한 이름처럼 보이게 하고, 브라우저가 이런 이름을 xn-- 형태로 보여 주는 이유도 이것입니다. 비밀번호 관리자는 이런 가짜 도메인에 비밀번호를 채워 넣지 않습니다.

다른 예시:

퓨니코드가 필요한 이유

인터넷의 도메인 이름은 원래 ASCII 문자, 숫자, 하이픈만 사용할 수 있었습니다. RFC 3492에 정의된 퓨니코드는 악센트, 움라우트, 키릴 문자, 한자, 일본어, 이모지 등 유니코드로 작성된 국제화 도메인 이름(IDN)이 이 ASCII 전용 시스템을 통과할 수 있게 해 주는 인코딩입니다. 비ASCII 문자를 포함한 각 라벨은 되돌릴 수 있는 ASCII 문자열로 변환되고 xn-- 접두사가 붙습니다. 그래서 münchen.de는 xn--mnchen-3ya.de가 됩니다. 브라우저 주소창에는 보기 좋은 유니코드 형태가 표시되지만, 실제로는 xn-- 버전으로 도메인을 조회합니다.

이 변환기의 작동 방식

위쪽 칸에 유니코드 도메인을 입력하면 그에 해당하는 ASCII xn-- 형태가 즉시 표시되고, 아래쪽 칸에 xn-- 도메인을 붙여넣으면 사람이 읽을 수 있는 유니코드로 다시 디코딩됩니다. 각 라벨은 점(.)을 기준으로 나뉘어 개별적으로 처리됩니다. com이나 de 같은 순수 ASCII 라벨은 그대로 통과되고, 실제로 비ASCII 문자를 포함한 라벨만 xn--로 변환됩니다. 이 도구는 이모지 같은 서로게이트 페어 문자까지 포함해 RFC 3492 인코딩과 디코딩 알고리즘을 완전히 구현하므로 인코딩한 라벨은 같은 문자로 다시 디코딩됩니다. https://münchen.de/straße?q=ü처럼 스킴으로 시작하는 링크 전체를 넣으면 호스트만 변환하고, 사용자 이름·포트·경로·쿼리·프래그먼트는 URL 인코딩하지 않고 입력한 그대로 둡니다. münchen.de/path처럼 스킴 없이 호스트 뒤에 경로가 붙은 값은 변환하지 않습니다. 샘플·지우기 아래의 예시 버튼은 한글 최상위 도메인, 한글과 영문 라벨이 섞인 도메인, 한 라벨에 한글과 숫자가 함께 든 도메인, 움라우트, 링크 전체를 불러옵니다. 인코딩 대상을 일반 문자열 (Bootstring)로 바꾸면 문자열을 입력한 그대로 인코딩합니다. xn-- 접두사를 붙이지 않고, 점에서 나누지 않고, 소문자로 바꾸지도 않습니다. 여러 도메인은 변환 칸 아래의 목록 칸에 한 줄에 하나씩 붙여넣거나 텍스트 파일을 열면 됩니다. 줄마다 반대 형태로 바뀌며(xn-- 줄은 디코딩, 나머지는 인코딩), 변환할 수 없는 줄은 빼지 않고 표시해 둡니다. 어느 칸이든 변환할 수 없는 값이 들어오면 반대쪽 칸을 비우고 이유를 보여 주므로, 이전 결과가 오류 옆에 남지 않습니다.

자주 묻는 질문

퓨니코드 도메인이 왜 xn--로 시작하나요?

xn-- 접두사(ACE 접두사라고 부릅니다)는 해당 라벨이 ASCII로 인코딩된 국제화 이름임을 나타냅니다. 소프트웨어는 라벨 앞에 xn--가 있으면 나머지 부분을 퓨니코드 알고리즘으로 디코딩해 원래의 유니코드 문자를 복원합니다.

도메인의 ASCII 부분도 바뀌나요?

아니요. 라벨은 점을 기준으로 나뉘며 비ASCII 문자를 포함한 라벨만 인코딩됩니다. www, com, de 같은 일반적인 부분은 그대로 유지되므로 이미 올바른 ASCII였던 내용은 전혀 변경되지 않습니다.

xn--로 시작하는 도메인은 왜 풀어 봐야 하나요?

링크가 실제로 어떤 글자로 되어 있는지 보기 위해서입니다. 공격자는 라틴 문자 하나를 모양이 같은 키릴·그리스 문자로 바꾼 도메인을 등록합니다. 풀어 보면 섞인 글자가 드러나고, 한 라벨 안에 그런 문자가 섞였거나 전부 닮은꼴 글자일 때 도구가 경고합니다.

도메인 여러 개를 한꺼번에 바꿀 수 있나요?

네. 변환 칸 아래의 목록 칸에 한 줄에 하나씩 붙여넣거나 ‘파일 열기…’ 버튼으로 텍스트 파일을 불러오면, 줄마다 따로 반대 형태로 바꿉니다. xn-- 줄은 디코딩하고 나머지는 인코딩하므로 유니코드와 xn-- 형태가 섞인 목록도 되고, 변환할 수 없는 줄은 사라지지 않고 ✗ 표시와 함께 남습니다. ‘목록 복사’로 결과 전체를 복사할 수 있습니다.

도메인 말고 링크 전체를 넣어도 되나요?

네. https://처럼 스킴으로 시작하기만 하면 됩니다. 두 칸에서도 목록에서도 호스트만 변환하고, 사용자 이름·포트·경로·쿼리·프래그먼트는 URL 인코딩하지 않고 입력한 그대로 둡니다. 그래서 https://münchen.de/straße는 https://xn--mnchen-3ya.de/straße가 됩니다. münchen.de/path처럼 스킴 없이 호스트 뒤에 경로가 붙은 값은 여전히 변환하지 않습니다.