0. kozorez 6 15.05.16 13:54 Сейчас в теме

Обработка для перекодировки текста в UTF-8 HEX

Внешняя обработка для конвертации русского текста в UTF-8 HEX, для отправки POST запросов.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. andrewks 1267 16.05.16 16:15 Сейчас в теме
можно заюзать javascript с его функцией encodeURIComponent()

нативная функция для 1с также представлена здесь:
http://wiki.bitel.ru/index.php/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BE%D0%B1%D1%80%­D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BA_%D0%B1%D0%B8%D0%B­B%D0%BB%D0%B8%D0%BD%D0%B3%D1%83_%D0%B8%D0%B7_1%D0%A1_v.7.7
2. kozorez 6 17.05.16 03:45 Сейчас в теме
(1) andrewks, А вы сами пробовали функцию по Вашей ссылке? Если нужно перекодировать в UTF-8?
Функция по вашей ссылке при строке - "АБэцЮюЁё"
возвращает - "%C0%C1%FD%F6%DE%FE%A8%B8"
моя функция возвращает "%D0%90%D0%91%D1%8D%D1%86%D0%AE%D1%8E%D0%81%D1%91"
Мне для POST запроса нужен был именно UTF-8.
Внешние функциии стараюсь не использовать, тем более что, сама функция перекодировки помещается в одну строку....
Если несложно приведите пример функции с javascript, думаю многим бы пригодилось.
3. andrewks 1267 17.05.16 12:39 Сейчас в теме
(2)
Если несложно приведите пример функции с javascript, думаю многим бы пригодилось.


Функция EncodeURI(URI,StrongEncode=0)
	
	Попытка
		JS=СоздатьОбъект("MSScriptControl.ScriptControl");
		JS.Language="jscript";
		JS.Timeout=-1;
	Исключение
		ТекстОшибки=ОписаниеОшибки();
		Сообщить("Не удалось создать объект MSScriptControl.ScriptControl","!");
		Сообщить("Описание ошибки: "+ТекстОшибки,"!");
		Возврат "";
	КонецПопытки;
	
	Попытка
		
		СтрКода="function EncodeURI_1(URI,StrongEncode)
		|{
		|   if (StrongEncode) return(encodeURIComponent(URI)) 
		|   else return(encodeURI(URI));
		|}
		|";
	
	JS.AddCode(СтрКода);
	EncodedURI=JS.Modules("Global").CodeObject.EncodeURI_1(URI,StrongEncode);
	Исключение
		ТекстОшибки=ОписаниеОшибки();
		Сообщить("Произошла ошибка при отработке скрипта!","!");
		Сообщить("Описание ошибки: "+ТекстОшибки,"!");
		Возврат "";
	КонецПопытки;
	Возврат EncodedURI;
КонецФункции

Показать
4. kozorez 6 17.05.16 15:35 Сейчас в теме
(3) andrewks, Функция обрабатывает все правильно. Спасибо.
Если у кого есть еще нормально работающее решение, выкладывайте. :)
А то сам час потратил на то чтобы найти, полчаса на то чтобы понять что, всё что нашел не работает. И ещё полчаса разобраться с кодировкой и написать обработку.
5. SerSinelnik 28.09.17 15:27 Сейчас в теме
А как будет выглядеть код для 1с 8.3 ?
6. Slypower 28.09.17 16:52 Сейчас в теме
Функция ПреобразоватьСтрокуВУТФ8(Стр)
    Длина=СтрДлина(Стр);
    Итог="";
    Для Н=1 По Длина Цикл
        Знак=Сред(Стр,Н,1);
        Код=КодСимв(Знак);
        Если Код<128 Тогда
            Итог=Итог+Знак;
        Иначе
            Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
                Итог=Итог+Симв(208)+Симв(144+Код-КодСимв("А"));
            ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
                Итог=Итог+Симв(209)+Симв(128+Код-КодСимв("р"));
            ИначеЕсли (Знак="ё") Тогда
                Итог=Итог+Симв(209)+Симв(145);
            ИначеЕсли (Знак="Ё") Тогда
                Итог=Итог+Симв(208)+Симв(129);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат Итог;
КонецФункции   
Показать

А эта?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Владивосток
зарплата от 60 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Москва
зарплата от 120 000 руб.
Полный день

Руководитель проекта, аналитик, консультант
Санкт-Петербург
По совместительству

Программист 1С
Самара
зарплата от 100 000 руб. до 150 000 руб.
Полный день