Имя: Пароль:
1C
1С v8
HTTPСоединение, экранирование
0 alexei366
 
14.11.12
09:55
Народ необходимо экранировать спецсимволы в Post и Get запросах, велосипед как-то не хочеться придумывать, а в нете как-то толком не нашёл. Мож есть у кого наработки, прошу поделиться.
1 alexei366
 
14.11.12
09:58
А все нашел такое.

Функция ПреобразоватьПараметрЗапроса(ТекСтрока) Экспорт
   
   Перем ъ, Символ, Рез;
   
   Рез = "";
   Длина = СтрДлина(ТекСтрока);
   Для ъ = 1 По Длина Цикл
         Символ = КодСимвола(Сред(ТекСтрока, ъ, 1));
         Если Символ = 32 Тогда
             Рез = Рез + "+";
         ИначеЕсли ((Символ < 48) ИЛИ (Символ > 126)) ИЛИ ((Символ >= 58) И (Символ <= 64)) Тогда
           Рез = Рез + "%" + Hex(Символ);
         Иначе
           Рез = Рез + Символ(Символ)
         КонецЕсли;
   КонецЦикла;
   
   Возврат Рез;
   
КонецФункции
2 alexei366
 
14.11.12
09:59
И туда же

Функция Hex(ТекЧисло)
   
   СпецСимволы = "~`!@#$%^&*()[]_+-=""№;:?\/<>.,";

   
   ТекЧисло = ТекЧисло - ?(Найти(СпецСимволы, Символ(ТекЧисло))>0, 0, 848);
   Число1    = ТекЧисло%16;
   Стр1    = ?(Число1 < 9,Строка(Число1),Символ(КодСимвола("A")+Число1-10));
   Число2    = Цел(ТекЧисло/16);
   Стр2    = ?(Число2 < 9,Строка(Число2),Символ(КодСимвола("A")+Число2-10));
   
   Возврат Стр2+Стр1;
   
КонецФункции
3 alexei366
 
14.11.12
10:00
Но если есть у кого получше, прошу написать.
2 + 2 = 3.9999999999999999999999999999999...