퓨니코드(Punycode)는 유니코드 문자열을 호스트 이름에서 허용된 문자만으로 인코딩하는 방법으로, RFC 3492에 기술되어 있다. 퓨니코드는 유니코드가 지원하는 모든 언어로 국제화 도메인을 쓸 수 있게 한 IDNA의 일부로, 변환은 전적으로 웹 브라우저와 같은 클라이언트에서 이루어진다. 출처 : https://ko.wikipedia.org/wiki/%ED%93%A8%EB%8B%88%EC%BD%94%EB%93%9C
쉽게 얘기해서 기본적으로 도메인은 ASCII 문자 집합만 사용 가능한데 국제화 도메인을 사용하기 위해서 퓨니코드라는 것이 필요하다는 것이다. 퓨니코드는 xn--
접두어를 통해 구분된다. 예를들어 "wiki백과.한국" 도메인은 IDNA에서 xn--wiki-ei4p334e.xn--3e0b707e로 변환된다.
국제화 도메인과 퓨니코드를 상호 변환을 테스트 해보려면 KISA 퓨니코드 변환기를 사용할 수 있다. 이 외에도 퓨니코드 변환기로 검색하면 많은 변환기들이 존재한다.
사실 이 퓨니코드에 대한 소개를 하는 이유는 일반적인 상황에서는 직접 처리해야할 일이 없지만 특수한 경우에는 이것이 필요할 수 있기 때문이다. 예를들어 이런 경우가 있다. IE8 이하에서는 한글도메인과 퓨니코드로 변환된 도메인을 다르게 인식하여 AJAX 사용시 cross domain 문제를 일으킬 수 있다. 이런 경우엔 퓨니코드를 한글 도메인으로 다시 변환하여 URL을 사용해야 문제를 막을 수 있다.
따라서 퓨니코드에 대한 이해와 변환 방법에 대해 알아두면 도움이 될 것이다. 아래는 변환에 바로 사용할 수 있는 몇가지 오픈소스 프로젝트를 안내한다. 이외에도 조금만 검색하면 많은 오픈소스를 찾을 수 있다.