Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.12.2012, 00:55
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Как работает Punycode? Алгоритм!!!
Уже не знаю, где спросить, поэтому попробую здесь, может кто ответит
Купил скрипт конструктор сайтов, но он не поддерживает русские домены.
Спецификацию RFC 3492 я почитал, хотя с ангийским довольно недружен, но тем не менее. Класс для создания Idn доменов я нашел, но как работает так и не понял. Объясните пожалуйста.

Последний раз редактировалось platedz, 25.12.2012 в 00:59.
Ответить с цитированием
  #2 (permalink)  
Старый 25.12.2012, 17:46
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Вот нашел класс на javascript
https://github.com/bestiejs/punycode...er/punycode.js
Может кто поможет разобраться как он работает
Ответить с цитированием
  #3 (permalink)  
Старый 26.12.2012, 07:36
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Разбирая класс http://phlymail.com/en/downloads/idna-convert.html в целом я застрял на конечном автомате, с которым познакомился только сегодня. Т.е. смысл кодировки сводится к тому, чтобы привести символы в их десятиричное представление. Убрать все не ascii символы, спереди добавить xn-- а в конце -. А дальше уже идет алгоритм конечного автомата, который кроется в функции protected function _encode($decoded) и мне не очень понятен.
Соответственно вопрос в том как работает конечный автомат, соответственно, для данного случае интересует больше. Но любой ответ будет в помощь
Ответить с цитированием
  #4 (permalink)  
Старый 02.01.2013, 00:44
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

С алгоритмом частично разобрался. Подскажите, пожалуйста, а как мне в виде двоичного числа символ отобразить в виде 0101010101 или 0x02?
Ответить с цитированием
  #5 (permalink)  
Старый 02.01.2013, 01:00
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

var letter = "s"; // строка с длиной  в 1 символ
var base = 2; // в какую систему

var encoded = letter.charCodeAt().toString(base);

alert(encoded);
Ответить с цитированием
  #6 (permalink)  
Старый 02.01.2013, 01:15
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Большое спасибо за ответ. Только что-то я не нашел, где описаны данные свойства объекта.
Ответить с цитированием
  #7 (permalink)  
Старый 02.01.2013, 01:22
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Все понял.
Ответить с цитированием
  #8 (permalink)  
Старый 02.01.2013, 01:22
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

http://javascript.ru/Number/toString
Ответить с цитированием
  #9 (permalink)  
Старый 02.01.2013, 16:21
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

Подскажите, а как-нибудь нулями отсутствующими его заполнить можно для наглядности, а то получается то 101, то 11001, а надо чтобы было 00000101 и 00011001
Ответить с цитированием
  #10 (permalink)  
Старый 02.01.2013, 17:29
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

И подскажите, пожалуйста почему
Ни так не получается
<script>
var R = ("9");
var RR = ~R;
var Rs = R + " - " + R.charCodeAt().toString(10) + " - " + R.charCodeAt().toString(2) + " - " + R.charCodeAt().toString(16) + "<br>";
Rs += "~ - " + (RR.charCodeAt().toString(10)) + " - " + (RR.charCodeAt().toString(2)) + " - " + (RR.charCodeAt().toString(16)) + "<br>";
document.write(Rs);
</script>


ни так не получается

<script>
var R = ("9");
var Rs = R + " - " + R.charCodeAt().toString(10) + " - " + R.charCodeAt().toString(2) + " - " + R.charCodeAt().toString(16) + "<br>";
Rs += "~ - " + ~(R.charCodeAt().toString(10)) + " - " + ~(R.charCodeAt().toString(2)) + " - " + ~(R.charCodeAt().toString(16)) + "<br>";
document.write(Rs);
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как работает CKEditor? ololosh Общие вопросы Javascript 9 20.12.2012 17:50
Долго работает алгоритм KamalovRadik Серверные языки и технологии 0 25.03.2012 23:28
При активации Disqus, не работает Nivo slider, как решить проблему? pinkfloyd Общие вопросы Javascript 0 30.05.2011 15:29
InnerHTML почему-то работает не так, как хотелось бы. помогите Dima00782 Общие вопросы Javascript 2 13.06.2010 21:17
Как работает обработчик onMouseMove() bayah Общие вопросы Javascript 3 29.04.2010 14:36