Как преобразовать доменные имена с греческими символами в ascii URL? - PullRequest
2 голосов
/ 16 сентября 2010

Например:

При вводе παιχνιδια.com в Firefox он автоматически преобразуется в xn--kxadblxczv9d.com

Пожалуйста, предложите инструмент для такого преобразования.


Одним из самых простых является это . Конвертирует и проверяет наличие одновременно.

Ответы [ 5 ]

2 голосов
/ 28 сентября 2010

Если вы хотите сделать это в своем браузере, сохраните код в этот ответ как puny.js и код ниже puny.html , затем загрузите файл в ваш браузер.

<html>
    <title>Punyconverter</title>
    <script type="text/javascript" src="puny.js"></script>
    <style type="text/css">
        input {width:300px;}
        label {width:100px; display:inline-block;}
    </style>
    <script type="text/javascript">
        onload = function( ) {
            var ASCII = document.getElementById("ASCII");
            var Unicode = document.getElementById("Unicode");
            var Input = document.getElementById("Input");

            Input.onkeyup=function(){
                ASCII.value = punycode.ToASCII( this.value);
                Unicode.value = punycode.ToUnicode( this.value);
            }
        };
    </script>
</html>
<body>
    <h1>Convert puny coded IDN</h1>
    <div><label for="Input">Input</label><input id="Input" type="text"></div>
    <div><label for="ASCII">ASCII</label><input id="ASCII" type="text" readonly="readonly"></div>
    <div><label for="Unicode">Unicode</label><input id="Unicode" type="text" readonly="readonly"></div>
</body>
1 голос
/ 18 декабря 2015

Стандартные модули в Perl, также как и в Apache, могут делать это с помощью модуля URI.

use URI;
#insert sitename in next:
$sitename = "..";
my $uri = URI->new( $sitename,'http');
if ($uri->scheme) { print $uri; }
1 голос
/ 16 сентября 2010

Интернационализированное доменное имя (т.е. доменные имена с не-ASCII символами) кодируются с использованием системы Punycode .

1 голос
/ 16 сентября 2010

Вы кодируете и декодируете IDNA с помощью Python :

>>> print u'παιχνιδια'.encode('idna')
xn--mxaaitabzv9d
>>> print 'xn--mxaaitabzv9d'.decode('idna')
παιχνιδια
1 голос
/ 16 сентября 2010

Вы можете использовать любой инструмент, который поддерживает "Libidn".Быстрый поиск показал, что SimpleDNS может быть вам полезен.

Существует множество конвертеров для IDN онлайн, если этого достаточно, вы можете использовать one изим.

...