|   |   | 
| 
 | из кириллицы в escape-последовательность | ☑ | ||
|---|---|---|---|---|
| 0
    
        ivant 18.11.11✎ 19:24 | 
        Приветствую.
  Конечно, понимаю, что время неподходящее, но все же рискну. Есть ли простой способ конвертации кириллический символов в escape-последовательность. Требуется отправлять JSON запрос, а он только escape понимает. | |||
| 1
    
        andrewks 18.11.11✎ 19:28 | 
        jscript + escape()     | |||
| 2
    
        ivant 18.11.11✎ 19:36 | 
        (1) так?
  //******************************************* Процедура Сформировать() Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.language="jscript"; Стр="Москва"; Стрим=СоздатьОбъект("adodb.stream"); Стрим.type=2; Стрим.charset="windows-1251"; Стрим.open(); Стрим.writetext(Стр); Стрим.position=0; Стрим.charset="iso-8859-15"; Скрипт.AddObject("Стрим",Стрим); Предупреждение(Скрипт.Eval("escape(Стрим.readtext())")); КонецПроцедуры | |||
| 3
    
        andrewks 18.11.11✎ 19:37 | 
        (2) :) если сам всё знаешь, зачем тогда спрашиваешь?     | |||
| 4
    
        ivant 18.11.11✎ 19:53 | 
        (3) понтуюсь)
  а если серьезно, то нашел "внезапно". только вот теперь незадача - он мне вместо \u043f\u0440\u0438\u0432\u0435\u0442 отдает %CF%F0%E8%E2%E5%F2%21 в чем подвох? | |||
| 5
    
        ivant 18.11.11✎ 19:57 | 
        (4) поменял кодировку на utf-8
  стало лучше %u041F%u0440%u0438%u0432%u0435%u0442%21 Осталось только обратный слэш получить. но это можно и СтрЗаменить, если чо | |||
| 6
    
        Asmody 18.11.11✎ 19:58 | 
        (2) текст в Unicode ему подсунь, а не в 1251     | |||
| 7
    
        andrewks 18.11.11✎ 20:01 | 
        (6)+1     | |||
| 8
    
        andrewks 18.11.11✎ 20:04 | 
        посмотри ещё:
  encodeURI() encodeURIComponent() | |||
| 9
    
        ivant 18.11.11✎ 20:27 | 
        ну вот, все заработало с помощью СтрЗаменить.
  Только вот со знаками препинания беда - они тоже конвертируются, но на стороне сервера не обрабатываются корректно. | |||
| 10
    
        ivant 18.11.11✎ 20:29 | 
        Для восьмерки скрипт выглядит так:
  ТекстСообщения = "Привет"; Скрипт=Новый COMОбъект("MSScriptControl.ScriptControl"); Скрипт.language="jscript"; Стрим=Новый COMОбъект("adodb.stream"); Стрим.type=2; Стрим.charset="Unicode"; Стрим.open(); Стрим.writetext(ТекстСообщения); Стрим.position=0; Стрим.charset="Unicode"; Скрипт.AddObject("Стрим",Стрим); ТекстСообщения = Скрипт.Eval("escape(Стрим.readtext())"); | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |