Como o conjunto permitido de caracteres em um nome DNS é tão restrito, o nome de domínio real é o nome com os hífens nele. Então, o que você vê no HTTP_HOST é, na verdade, o nome correto. A tradução para unicode é um pouco de revestimento de açúcar aplicado para exibição somente quando o nome chega ao navegador (e nem mesmo para todos os navegadores). Qualquer trabalho que você queira fazer com a URL deve ser feito com a versão ASCII original (" punycode "), não a versão Unicode, ou as coisas podem não funcionar da maneira esperada.
Dito isso, se você quiser traduzir a versão do punycode do nome de domínio para o Unicode para fins de exibição em sua página da Web (presumivelmente usando PHP), use o Funções IDN do PHP .