|
из кириллицы в 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())");
|
|