Имя: Пароль:
1C
1С v8
Как перекодировать символы служебные для GET-запроса?
0 Гений 1С
 
гуру
27.05.13
14:03
т.е. чтобы в адресную строку вместо пробела подставлялось %20, например, есть какие-нибудь идеи?
1 Ковычки
 
27.05.13
14:04
стрзаменить - не ?
2 Гений 1С
 
гуру
27.05.13
14:08
(1) а где взять таблицу кодировок?
3 Гений 1С
 
гуру
27.05.13
14:08
мне нужно все символы преобразовать.
4 oleg_km
 
27.05.13
14:10
Есть например такая библиотека. Я хочу дот нет использовать
5 oleg_km
 
27.05.13
14:10
Забыл: Chilkat.String
6 Гений 1С
 
гуру
27.05.13
14:11
(5) у меня дота нет. Может какой сом-объект умеет это делать?
7 Maxus43
 
27.05.13
14:12
(2) один раз написать поидее, потом положишь в папочку со воими вкусняшками. Независимо будет от среды исполнения, ни библиотек ни чего другого не надо
8 Ковычки
 
27.05.13
14:13
(6)
Х=Новый COMОбъект("htmlfile");
9 Infsams654
 
27.05.13
14:14
(0) загугли "1С urlencode" и увидишь много интересного
10 DS
 
27.05.13
14:17
Вроде как за символом процента идет 16-ричный ASCII-код символа.
11 oleg_km
 
27.05.13
14:19
(6) Это и есть КОМ. Загугли, сразу на сайт этой библиотеки попадешь, там дофига всего напихано
12 Ковычки
 
27.05.13
14:29

   ХТМЛ=Новый COMОбъект("htmlfile");
   ХТМЛ.Open("text/html");
   //<-- Подготовим нужные методы
   ХТМЛ.Write("<script>
   |ЭнкодеУРИ=function(x){return encodeURI(x)}
   |</script>");
   Док=ХТМЛ.documentElement.document;
   // Все подготовке -->
   Это=Док.script;
   Сообщить(Это.ЭнкодеУРИ("Вася Пупкин"));
13 Ковычки
 
27.05.13
14:57
целиком штатно


Перем Скрыпт;
Процедура ДокументСформирован(Поле)
   Скрыпт=Поле.Документ.Script;
КонецПроцедуры

Процедура ПриОткрытии()
   ПолеHTMLДокумента=ЭлементыФормы.Найти("ПолеHTMLДокумента");
   Если ПолеHTMLДокумента=Неопределено Тогда
       ПолеHTMLДокумента=ЭлементыФормы.Добавить(Тип("ПолеHTMLДокумента"),"ПолеHTMLДокумента");
   КонецЕсли;
   ПолеHTMLДокумента.УстановитьТекст("<script type='text/javascript'>ЭнкодеУРИ = function(x){return encodeURI(x)}</script>");
   ПолеHTMLДокумента.УстановитьДействие("ДокументСформирован",Новый Действие("ДокументСформирован"));
КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
   Сообщить(Скрыпт.ЭнкодеУРИ("КуЙ"));
   // Вставить содержимое обработчика.
КонецПроцедуры
14 acsent
 
27.05.13
14:58
(13) через ж.п.о это а не штатно
15 Ковычки
 
27.05.13
15:00
(14) хоть один не штатный метод в (13) есть ?
16 Гений 1С
 
гуру
27.05.13
15:10
(13) круто.

Функция ПерекодироватьТекстВURL(Текст) Экспорт
   ХТМЛ = Новый COMОбъект("htmlfile");
   ХТМЛ.Open("text/html");
   //<-- Подготовим нужные методы
   ХТМЛ.Write("<script>
   |ЭнкодеУРИ=function(x){return encodeURI(x)}
   |</script>");
   Док = ХТМЛ.documentElement.document;
   // Все подготовке -->
   Это = Док.script;
   Возврат Это.ЭнкодеУРИ(Текст);
КонецФункции
17 Гений 1С
 
гуру
27.05.13
15:21
(13) спасибо, короче.