Ну, я использую класс idna_convert PHP (http://idnaconv.net/index.html) для кодирования/декодирования доменных имен.Как проверить, является ли домен punycode или нет?
К сожалению, не похоже, чтобы интерфейс был проверен, является ли доменное имя уже punycode или нет.
Каков наилучший способ достичь этого? Было бы неплохо, если бы кто-нибудь мог опубликовать исходный код, как проверить, что домен является punycode или нет (с объяснением, потому что код idna_convert для меня не совсем понятен). Я уже знаю, как поймать исключение из idna_convert. :-)
Btw .: idna_convert генерирует исключение при попытке конвертировать доменное имя в punycode, который уже является punycode (см. https://github.com/phlylabs/idna-convert/blob/master/src/Punycode.php; строка 157). Более того, я не совсем понимаю, как работает их проверка.
Может быть, попробуйте функцию php idn_to_utf8 и сравните вывод с imput? http://php.net/manual/en/function.idn-to-utf8.php –
@PavelPetrov: Спасибо, эта функция выглядит интересной и намного лучше, чем ловить исключение. :-) – Andreas
@Andreas, но это может привести к неправильному результату, потому что punycode не только конвертирует в unicode. Знаете, Othervise, idna_convert не понадобится. – Jehy