|   |   | 
| 
 | 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) +++     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |