Имя: Пароль:
1C
 
URL encode
1 lamme
 
18.02.11
05:02
Надо преобразовать строку в URL
в этом примере - http://infostart.ru/public/70330/
текст кодируется сначала в URF8 - и только потом - в URL
Надо - русский текст перегнать в URL - без промежуточного UTF.

Если кому что понятно - хотел бы услышать ответ.

Пример.
Исходный текст: Адрес электронной почты (для связи с клиентами)
При перекодировании (как в примере с infostart) получается:
%D0%90%D0%B4%D1%80%D0%B5%D1%81%20%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%BF%D0%BE%D1%87%D1%82%D1%8B%20%28%D0%B4%D0%BB%D1%8F%20%D1%81%D0%B2%D1%8F%D0%B7%D0%B8%20%D1%81%20%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8%29

А надо бы:
%C0%E4%F0%E5%F1%20%FD%EB%E5%EA%F2%F0%EE%ED%ED%EE%E9%20%EF%EE%F7%F2%FB%20(%E4%EB%FF%20%F1%E2%FF%E7%E8%20%F1%20%EA%EB%E8%E5%ED%F2%E0%EC%E8)
2 lamme
 
18.02.11
05:15
все
нашел
3 lamme
 
18.02.11
05:19
кому интересно будет





Функция КодСимволаASCII(Символ)
  КодUNICODE = КодСимвола(Символ);
  Если ((КодUNICODE > 1039) И (КодUNICODE < 1104)) Тогда
      Возврат (КодUNICODE - 848);
  ИначеЕсли КодUNICODE = 8470 Тогда
      Возврат 185;
  ИначеЕсли КодUNICODE = 1105 Тогда
      Возврат 184;
  ИначеЕсли КодUNICODE = 1025 Тогда
      Возврат 168;
  Иначе
      Возврат КодUNICODE;
  КонецЕсли;
КонецФункции


Функция URLEncode( value )

   table = "%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14" +
           "%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20%21%22%23%24%25%26%27%28" +
           "%29%2A%2B%2C%2D%2E%2F%30%31%32%33%34%35%36%37%38%39%3A%3B%3C" +
           "%3D%3E%3F%40%41%42%43%44%45%46%47%48%49%4A%4B%4C%4D%4E%4F%50" +
           "%51%52%53%54%55%56%57%58%59%5A%5B%5C%5D%5E%5F%60%61%62%63%64" +
           "%65%66%67%68%69%6A%6B%6C%6D%6E%6F%70%71%72%73%74%75%76%77%78" +
           "%79%7A%7B%7C%7D%7E%7F%80%81%82%83%84%85%86%87%88%89%8A%8B%8C" +
           "%8D%8E%8F%90%91%92%93%94%95%96%97%98%99%9A%9B%9C%9D%9E%9F%A0" +
           "%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA%AB%AC%AD%AE%AF%B0%B1%B2%B3%B4" +
           "%B5%B6%B7%B8%B9%BA%BB%BC%BD%BE%BF%C0%C1%C2%C3%C4%C5%C6%C7%C8" +
           "%C9%CA%CB%CC%CD%CE%CF%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC" +
           "%DD%DE%DF%E0%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF%F0" +
           "%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF";
   
   result = "";        
           
   length = СтрДлина( value );        
   
   Для i = 1 По  length Цикл        
       symbol = Сред( value, i, 1 );        
       //code = КодСимвола( symbol );  
       code = КодСимволаASCII( symbol );
       result = result + Сред( table, code*3 + 1, 3 );        
   КонецЦикла;
   
   
   
   Возврат result;
КонецФункции