Перейти к содержанию

Нужна помощь с Java Script


Ice_man

Рекомендуемые сообщения

Всем привет, есть небольшой скрипт, буквально в 5-10 строчек, писал фиг знает кто, нужно пояснить его, сам я ява скрипт не учил к сожалению.. Есть такие кто может помочь?

Ссылка на комментарий
Поделиться на другие сайты

Я не обещаю(давно сей язык учил),но можно посмотреть.Как Вам удобнее в ЛС или в теме?

Изменено пользователем gecsagen
Ссылка на комментарий
Поделиться на другие сайты

В общем вот скрипт:

 
//utf8 to 1251 converter (1 byte format, RU/EN support only + any other symbols) by drgluck
    function utf8_decode (aa) {
    
        var bb = '', c = 0;
        for (var i = 0; i < aa.length; i++) {
            c = aa.charCodeAt(i);
            if (c > 127) {
                if (c > 1024) {
                    if (c == 1025) {
                        c = 1016;
                    } else if (c == 1105) {
                        c = 1032;
                    }
                    
                    
                    
                    bb += "%" + (c - 848).toString(16);
                }
            } else {
                 if(c == 32)
                   bb+="+";
                 else
                  bb += aa.charAt(i);
               
            }
        }
    
        return bb;
    }
    

Использование скрипта на сайте:

 

  if(but.name == "bremb")
 {

    if(word !="")
    {
    window.open("http://adstat.rambler.ru/wrds/wrds.pl?words=" + utf8_decode(word));
    }
    else
    {
    window.open("http://adstat.rambler.ru");
    }

    return;
 }


В общем желательно бы прокомментировать основные строчки и составить блок схему простенькую, за работу отблагодарю баллами =)


как я понял скрипт выполняет декодирование utf8 в javascript

Ссылка на комментарий
Поделиться на другие сайты

Это конвертор из UTF8 в Win1251 (только для рус/англ, 1 байт, т.е. со значениями типа 0aaa aaaa от 0 до 127 на 1 байт).

Работу этой функции мы часто видим в адресной строке с кириллицей. Типа: '123 Ёё aZ аЯ' -> '123+%a8%b8+aZ+%e0%df'

Схему чертить влом...

Баллы не надо, т.к. не знаю что это... :)

Code:

 

    function utf8_decode (aa) { //функция с именем utf8_decode и аргументом аа
    
        var bb = '', c = 0; //объявление и инициализация переменных bb - пустая строка, с - ноль
        for (var i = 0; i < aa.length; i++) { //цикл через переменную i с шагом 1, от 0 до размера (длины массива) aa.

//Короче перебираем посимвольно (поэлементно) строку (массив), полученную в качестве аргумента функции.
            c = aa.charCodeAt(i); //запихиваем в переменную C результат преобразования элемента массива (строки) в число.

//Обычно это число 0 до 65536. Первые 128 значений совпадают с ASCII, также, чтобы получить старшие  значения от 65536 нужно получать значения 2-х символов
            if (c > 127) { // если значение С больше 127, нужно преобразовать
                if (c > 1024) {//если C > 1024
                    if (c == 1025) { // если С = 1025, заморочка для буквы Ё
                        c = 1016; // С присвоим 1016, ниже будем вычитать (1016-848 = 168, т.е. Ё)
                    } else if (c == 1105) { //а если С = 1105, заморочка для буквы ё
                        c = 1032; //С = 1032 (1032-848 = 184 т.е. ё)
                    } //конец если if (c==1025) else if (c==1025)                   
                    
                    
                    bb += "%" + (c - 848).toString(16); // преобразуем значение C>1024 (после вычитания 848) в шестнадцатеричное и с смволом % пихнем в выходную строку (массив) bb
                } //конец если if (c > 1024)
            } else { // если меньше 128, писал выше, что первые 128 значений совпадают с ASCII, поэтому просто вернем символ, полученный из массива
                 if(c == 32) //если значение С = 32 (пробел)
                   bb+="+"; //то добавим к содержимому строки bb символ "+"… Ну, а пробел будет плюсом
                 else //иначе
                  bb += aa.charAt(i); //вот эта функция возвращает символ из строки (массива) под номером i из нашего основного цикла-перебора. Результат добавим к содержимому массива bb
               
            } //конец если if (c > 127)
        } //конец основного цикла
    
        return bb; // вернем результат преобразования из строки (массива) bb
    } //конец функции
    

 

 

 


Итог работы функции: символы с кодом от 0 до 127 возвращаем "как есть", от 128 до 1024 - пропускаем, от 1025 преобразуем в шестнадцетиричный код (с некоторой заморочкой с Ё, ё), пробел заменяем на "+".

Изменено пользователем ACIK
  • Согласен 1
Ссылка на комментарий
Поделиться на другие сайты

Спасибо=)) Баллы это форумная валюта необходимая для покупок в магазине, подумай, вдруг нужна?=)
P.S. Ответь в ЛС на счет баллов=))

Изменено пользователем Ice_man
Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
  • Похожий контент

    • Alexk6
      От Alexk6
      После криворукого админа возникли проблемы. Поймали шифровальщик. Админ сделал терминальный сервер из Win 11 Home на котором работали 6-7 человек, все с админскими правами. Браузером пользовались все с этого сервера. Файлы меньше 8 мб не затронуты. Ссылка на шифрованный файл и его орегинал https://cloud.mail.ru/public/a4nf/zJDX69Qs9
    • Lomtik123
      От Lomtik123
      Периодически появляется процесс в Диспетчере задач, но сразу закрывается. Не знаю, где поймал, возможно торрент, возможно скрипт для работы дискорда
      CollectionLog-2025.01.09-00.09.zip
    • Vopj
      От Vopj
      В определенный момент начала возникать большая нагрузка на CPU, возник сильный перегрев. RogueKiller обнаружил PuzzleMedia, CureIt не запускается ввобще, к сожалению по причине отсутствующих навыков, самостоятельно разобраться не получилось, прошу помощи.
      CollectionLog-2024.11.13-21.04.zip
    • КираРи
      От КираРи
      Я не знаю что нужно прилагать и что должно быть, но вирус удалить или вылечить не смогла даже с помощью Dr. Web, ноутбук пыхтит даже когда не нагружен работой, помогите я не знаю что делать 
    • tr01
      От tr01
      Добрый день
      Подскажите, пожалуйста, сможете ли вы помочь в ситуации, если сервер в зломали и упаковали файлы в архив rar?После этого был Backdoor, но вроде бы уже удален антивирусом, восстановить файлы с диска не получается (затерты архивами). 
      Addition.txt FRST.txt отчет.txt пароль к архиву - копия (72) — копия — копия.txt
×
×
  • Создать...