2010-09-16 1 views
2

Например:Как конвертировать доменные имена с греческими символами в URL-адрес ascii?

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

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


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

+0

Какой тип инструмента? Командная строка? Сайт? Класс или код? Если да, то на каком языке? – blowdart

+0

http://en.wikipedia.org/wiki/Internationalized_domain_name – msw

+0

Я имел в виду онлайн-инструмент. Получил ответ, спасибо. –

ответ

1

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

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

+0

Спасибо за помощь, человек не знал, что искать. –

1

Вы кодировать и декодировать IDNA with Python:

>>> print u'παιχνιδια'.encode('idna') 
xn--mxaaitabzv9d 
>>> print 'xn--mxaaitabzv9d'.decode('idna') 
παιχνιδια 
2

Если вы хотите сделать это в вашем браузере, сохранить код в this answer как 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

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

use URI; 
#insert sitename in next: 
$sitename = ".."; 
my $uri = URI->new($sitename,'http'); 
if ($uri->scheme) { print $uri; } 
Смежные вопросы