|
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 19
|
|
Как сконвертировать URL вида %D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B0 туда и обратно?31.07.2014, 18:49. Показов 2014. Ответов 10
Метки нет (Все метки)
Здрасьте всем!
Пришлось перелезть из Борланда на MS Visual Studio 5 под Windows XP. Делаю маленький Веб сервер. Так вот надо декодировать приходящие запросы из %-го вида в обычный тип char*. Поискал по инету - куча ссылок, но нет реальных конверторов. Может у кого-то есть готовый? Буду премного благодарен... У Майкрософта есть функции, которые вроде делают эту работу: UrlEncode / UrlDecode, но не могу до них добраться. Добавлено через 4 часа 57 минут Видимо все по отпускам разъехались...
0
|
|
| 31.07.2014, 18:49 | |
|
Ответы с готовыми решениями:
10
Что-то не так с Encoding данных туда и обратно: byte в string и обратно в byte Как к case подключить модуль, вывести туда массив, преобразовать, и вернуть обратно? |
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
||||||
| 01.08.2014, 14:20 | ||||||
Сообщение было отмечено ЯМалыш как решение
Решение
Я сделал сам функцию конвертации символов =)
1
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 01.08.2014, 15:33 | ||||||
|
Из библиотеки pion.
0
|
||||||
|
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 19
|
|
| 01.08.2014, 19:48 [ТС] | |
|
Ур-ра!
Огромное спасибо, ребята, щас попробую оба... Добавлено через 3 часа 57 минут Второй пример не пойдёт: для кодировки одного символа кипиллицы исползуются пары процентных групп, так буква 'с' кодируется как %D1%81. Я не могу уловить закономерность - как они кодируют! А зная как кодируют, можно легко раскодировать. Уже 3-й день бьюсь. Это должно быть что-то до боли простое, ведь для сервера очень важна скорость обработки запроса.
0
|
|
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
||
| 01.08.2014, 20:38 | ||
|
Только единственное что, я не полностью функцию выложил, поэтому на взгляд не понятно с массивом.(ну я думаю что ты принцип понял, если так, то доделаеш за 5 минут способ "туда", а "обратно" по аналогии...)
0
|
||
|
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 19
|
|
| 01.08.2014, 21:36 [ТС] | |
|
В твоём случае надо каждый раз прокручивать довольно-таки длинный цикл, до 66 витков для каждого символа... накладно. Попроьую потратить ещё денёк, если сам не разберусь с принципом, то да, возьму твой и скажу большое спасибо! А если разберусь, то поделюсь своим кодом...
Добавлено через 4 минуты А URL-ы нынче бывают ой какие длинные... Мне попадались 2-3 КБ в длину... с кириллицей.
0
|
|
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
||
| 01.08.2014, 21:43 | ||
|
Кстати можно оптимизировать, например изменив массив, чтоб в нём шли не Большая-маленькая, а сначало одни, потом другие - тем самым можно сразу 33 цикла съэкономить.(хотя прибавится проверка на то какая это буква). Можно пойти дальше и сделать проверку на середину массива(типа средней буквы в алфавите, например из 33 букв, выбрать 16-ую и сравнить больше или меньше)... но это уже изврат. =) Чё ты паришся, это не огромная база данных, тут даже при URL длинной в 5000 символов уйдёт даже моим методом менее секунды на преобразование.
0
|
||
|
28 / 23 / 12
Регистрация: 25.08.2013
Сообщений: 44
|
||||||
| 02.08.2014, 12:01 | ||||||
Сообщение было отмечено ЯМалыш как решение
Решение
2
|
||||||
|
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 19
|
|
| 02.08.2014, 12:56 [ТС] | |
|
Да, это работает, я и ожидал что-то в этом роде!
StailGot - большое спасибо!
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||||||||
| 02.08.2014, 13:16 | ||||||||
|
Цитатка с вики:
Например, твоя строка "%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B 0" Нужно отбросить проценты и перевести текстовые значения в байты как есть: Например "D1" строка будет записана в байт как 0xD1, строка 81 будет записана как 0x81 и т.д. Итого у нас получаются такие байты, не забываем ноль в конце.
1
|
||||||||
|
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 19
|
|
| 07.08.2014, 18:33 [ТС] | |
|
Только сейчас заметил этот коммент, он помог разобраться - спасибо за помощь!
0
|
|
| 07.08.2014, 18:33 | |
|
Помогаю со студенческими работами здесь
11
Смена владельца:туда и обратно Архивирование программным путем (туда, обратно) Движение окружности по диагонали туда и обратно Полоса загрузки, двигающаяся туда-обратно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|