Punycode (пуникод) - способ кодирования не-латинских (в частности, русских) символов в доменном имени (в частности в ".рф").

В адресной строке браузера вводятся и отображаются русские символы, но на сервер отправляются закодированные. При этом доменное имя кодируется в punicode (выглядит как "xn----8sbelbcmkrs0a0bie7j.xn--p1ai"), а все остальное (названия папок и параметров) - в urlencode (выглядит как "%D0%BF%D1%83%D1%82%D0%B5%D0%B2%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BC%D0%B5%D1%82%D0%BA%D0%B8").

В форме ниже вы можете проверить, как это работает.