HelpF.pro

Функции перекодировки текста в/из UTF-8 штатными средствами 1с 7.7

На полную универсальность не претендует, но с русскими буквами работает нормально.
Код 1C v 7.x
  // Преобразовать строку в UTF-8
Функция ПреобразоватьСтрокуВУТФ8(Стр)
Длина=СтрДлина(Стр);
Итог="";
Для Н=1 По Длина Цикл
Знак=Сред(Стр,Н,1);
Код=КодСимв(Знак);
Если Код<128 Тогда
Итог=Итог+Знак;
Иначе
Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
Итог=Итог+Симв(208)+Симв(144+Код-КодСимв("А"));
ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
Итог=Итог+Симв(209)+Симв(128+Код-КодСимв("р"));
ИначеЕсли (Знак="ё") Тогда
Итог=Итог+Симв(209)+Симв(145);
ИначеЕсли (Знак="Ё") Тогда
Итог=Итог+Симв(208)+Симв(129);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Итог;
КонецФункции

// Преобразовать строку из UTF-8
Функция ПреобразоватьСтрокуИзУТФ8(Стр)
Длина=СтрДлина(Стр);
Итог="";
Для Н=1 По Длина Цикл
Знак=Сред(Стр,Н,1);
Код=КодСимв(Знак);
Если Код<128 Тогда
Итог=Итог+Знак;
ИначеЕсли (Код>=128)И(Код<192) Тогда
Иначе
Н=Н+1;
Знак2=Сред(Стр,Н,1);
Код2=КодСимв(Знак2);
Если Код=208 Тогда
Если Код2=129 Тогда Итог=Итог+"Ё";
Иначе Итог=Итог+Симв(КодСимв("А")+Код2-144);
КонецЕсли;
ИначеЕсли Код=209 Тогда
Если Код2=145 Тогда Итог=Итог+"ё";
Иначе Итог=Итог+Симв(КодСимв("р")+Код2-128);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Итог;
КонецФункции

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/495.html