![]() |
![]() |
![]() |
|
v7: способ кодирования текста в URL для 7.7 | ☑ | ||
---|---|---|---|---|
0
jah1111
02.08.25
✎
11:28
|
Здравствуйте! Подскажите рабочий способ кодировки тескта (в том числе кирилицы) в url для семерки. Очень надо. Можна и с внешними компонентами, главное чтобы работало.Спасибо.
|
|||
1
Garykom
гуру
02.08.25
✎
11:43
|
Чем способ "программист" не устраивает?
|
|||
2
jah1111
02.08.25
✎
11:56
|
(1) предлагаете каждый раз отсылать текст программисту на кодировку?
|
|||
3
jah1111
02.08.25
✎
12:29
|
(1) я же не сайте сантехников спрашиваю :) к програмистам обращаюсь
|
|||
4
Бертыш
02.08.25
✎
12:48
|
(0) Читал пейджер. Много думал. Ни хрена не понял.
Не понял чего вы от неё от семёрки добиваетесь. Распишите подробнее чтобы и я мог принять участие в разговоре |
|||
5
MWWRuza
гуру
02.08.25
✎
13:12
|
Готовой функции сейчас под рукой нет, есть некое подобие обратной функции:
Функция urldecode(Стр) Стр = Врег(Стр); Стр = СтрЗаменить(Стр,"\U0430","а"); Стр = СтрЗаменить(Стр,"\U0431","б"); Стр = СтрЗаменить(Стр,"\U0432","в"); Стр = СтрЗаменить(Стр,"\U0433","г"); Стр = СтрЗаменить(Стр,"\U0434","д"); Стр = СтрЗаменить(Стр,"\U0435","е"); Стр = СтрЗаменить(Стр,"\U0451","ё"); Стр = СтрЗаменить(Стр,"\U0436","ж"); Стр = СтрЗаменить(Стр,"\U0437","з"); Стр = СтрЗаменить(Стр,"\U0438","и"); Стр = СтрЗаменить(Стр,"\U0439","й"); Стр = СтрЗаменить(Стр,"\U043A","к"); Стр = СтрЗаменить(Стр,"\U043B","л"); Стр = СтрЗаменить(Стр,"\U043C","м"); Стр = СтрЗаменить(Стр,"\U043D","н"); Стр = СтрЗаменить(Стр,"\U043E","о"); Стр = СтрЗаменить(Стр,"\U043F","п"); Стр = СтрЗаменить(Стр,"\U0440","р"); Стр = СтрЗаменить(Стр,"\U0441","с"); Стр = СтрЗаменить(Стр,"\U0442","т"); Стр = СтрЗаменить(Стр,"\U0443","у"); Стр = СтрЗаменить(Стр,"\U0444","ф"); Стр = СтрЗаменить(Стр,"\U0445","х"); Стр = СтрЗаменить(Стр,"\U0446","ц"); Стр = СтрЗаменить(Стр,"\U0447","ч"); Стр = СтрЗаменить(Стр,"\U0448","ш"); Стр = СтрЗаменить(Стр,"\U0449","щ"); Стр = СтрЗаменить(Стр,"\U044A","ъ"); Стр = СтрЗаменить(Стр,"\U044B","ы"); Стр = СтрЗаменить(Стр,"\U044C","ь"); Стр = СтрЗаменить(Стр,"\U044D","э"); Стр = СтрЗаменить(Стр,"\U044E","ю"); Стр = СтрЗаменить(Стр,"\U044F","я"); Стр = СтрЗаменить(Стр,"\U0410","А"); Стр = СтрЗаменить(Стр,"\U0411","Б"); Стр = СтрЗаменить(Стр,"\U0412","В"); Стр = СтрЗаменить(Стр,"\U0413","Г"); Стр = СтрЗаменить(Стр,"\U0414","Д"); Стр = СтрЗаменить(Стр,"\U0415","Е"); Стр = СтрЗаменить(Стр,"\U0401","Ё"); Стр = СтрЗаменить(Стр,"\U0416","Ж"); Стр = СтрЗаменить(Стр,"\U0417","З"); Стр = СтрЗаменить(Стр,"\U0418","И"); Стр = СтрЗаменить(Стр,"\U0419","Й"); Стр = СтрЗаменить(Стр,"\U041A","К"); Стр = СтрЗаменить(Стр,"\U041B","Л"); Стр = СтрЗаменить(Стр,"\U041C","М"); Стр = СтрЗаменить(Стр,"\U041D","Н"); Стр = СтрЗаменить(Стр,"\U041E","О"); Стр = СтрЗаменить(Стр,"\U041F","П"); Стр = СтрЗаменить(Стр,"\U0420","Р"); Стр = СтрЗаменить(Стр,"\U0421","С"); Стр = СтрЗаменить(Стр,"\U0422","Т"); Стр = СтрЗаменить(Стр,"\U0423","У"); Стр = СтрЗаменить(Стр,"\U0424","Ф"); Стр = СтрЗаменить(Стр,"\U0425","Х"); Стр = СтрЗаменить(Стр,"\U0426","Ц"); Стр = СтрЗаменить(Стр,"\U0427","Ч"); Стр = СтрЗаменить(Стр,"\U0428","Ш"); Стр = СтрЗаменить(Стр,"\U0429","Щ"); Стр = СтрЗаменить(Стр,"\U042A","Ъ"); Стр = СтрЗаменить(Стр,"\U042B","Ы"); Стр = СтрЗаменить(Стр,"\U042C","Ь"); Стр = СтрЗаменить(Стр,"\U042D","Э"); Стр = СтрЗаменить(Стр,"\U042E","Ю"); Возврат Стр; КонецФункции По такому-же принципу можно сделать и функцию кодирования. Еще раз - это не готовое решение, а просто "наводка" :-) И там не все символы. Просто функция кодирования мне никогда не требовалась, поэтому не писал, и готовой нет. Но, используя этот принцип, там дел на пол часа. |
|||
6
Злопчинский
02.08.25
✎
13:47
|
проба строки
%D0%BF%D1%80%D0%BE%D0%B1%D0%B0%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8 . //******************************************* Процедура Сформировать() Хекс = "0123456789ABCDEF"; СтрокаУТФ8 = глСервис.DecodeToUTF8(ВыбСтрока); РС = СтрДлина(СтрокаУТФ8); Результат = ""; Для ы=1 По РС Цикл Символ = Сред(СтрокаУТФ8,ы,1); СимволКод = КодСимв(Символ); СтаршийРазряд = Цел(СимволКод/16); МладшийРазряд = СимволКод - СтаршийРазряд*16; Результат = Результат + "%"+ Сред(Хекс,СтаршийРазряд+1,1)+ Сред(Хекс,МладшийРазряд+1,1); КонецЦикла; Форма.тРезультат.Заголовок(Результат); Т = СоздатьОбъект("Текст"); Т.ДобавитьСтроку(ВыбСтрока+РазделительСтрок+Результат); Т.Записать("e:\rez"); КонецПроцедуры // Сформировать() Проверять можно здесь https://www.design-sites.ru/utility/url-encoding.php |
|||
8
Злопчинский
03.08.25
✎
02:59
|
и что?
|
|||
9
Djelf
03.08.25
✎
23:55
|
(5) Ты что забыл встроенные функции Карлика? ;)
Карлик.FromURL и Карлик.ToURL? (0) же написал что не против ВК... Ежели что, то тут оно лежит: https://cloud.mail.ru/public/1cUy/spm8Y6Jwj P.S. Обработка с тестами и с большим количеством примеров вложена в архив. P.P.S. Последние исходники там же лежат, я не из тех кто подобные штуки прячет в сейф, а потом их все теряет при пожаре и даже ни с кем до этого не делится. P.P.P.S. Собрать будет очень сложно, месяц работы как минимум закладывайте на сборку (т.к. используется зоопарк компиляторов). |
|||
10
MWWRuza
гуру
03.08.25
✎
21:31
|
(9) Ты что забыл
Во блин... И правда забыл :-) Точно! Просто никогда не требовалось, в юникод и обратно часто пользуюсь, а УРЛ у меня как-то не востребовано. Оптимальный по простоте использования способ. |
|||
11
Djelf
03.08.25
✎
23:44
|
(10) Мне тоже это пока не потребовалось, но исходя из концепции разработки, почему бы это не реализовать заранее, даже если прямо сейчас это не требуется?
upd А, нет, вру! В одной выгрузке для поставщиков это давно используется для получения токена доступа (забыл уже, но сейчас проверил и нашел). |
|||
12
Pit0n_08
04.08.25
✎
11:34
|
(9) +++
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |