helpf.pro
Регистрация
 +4 
Распечатать

Функции перекодировки текста в/из 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);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Итог;
КонецФункции
Разместил:   Версии: | 7.x |  Дата:   Прочитано: 15861
 +4 
Распечатать
Возможно, вас также заинтересует
Идентификация Web сервисов 1C 0
1. Если на web сервере стоит Anonymous access 1.1 В базе нет пользователей – идеальный вариант для тестирования web-сервиса, чтобы не заморачиваться… 1.2 Если хочется, чтобы вэб сервис работал под определенным пользователем 1С....
Подбор из справочника на основе управляемых форм 1
В данной статье рассматривается технология реализации подбора на платформе 1С 8.2. Статья не претендует на академизм, просто столкнувшись с рядом проблем и не нашедшим «правильной» методологии решения (возможно плохо...
Функция проверки, строка написана только русскими и латинскими буквами? 0
// Параметры: // СтрокаПараметр - строка, проверяемая строка. // // Возвращаемое значение: // Истина - строка состоит из допустимых символов // Ложь - в строке встречаются недопустимые символы // // Описание: // Строка...
Посмотреть все результаты поиска похожих
Комментарии
E_Migachev
19.08.2011 13:45Комментарий: 1
E_Migachev
Алексей Зайцев пишет:
Код 1C v 8.х
     Если Код=208 Тогда
Если Код2=129 Тогда Итог=Итог+"Ё";
Иначе
Итог=Итог+Симв(КодСимв("А")+Код2-144);
КонецЕсли;
ИначеЕсли Код=209 Тогда
Если Код2=145 Тогда Итог=Итог+"ё";
ИначеЕсли Код2=150 Тогда Итог=Итог+"і"; // украинская
ИначеЕсли Код2=151 Тогда Итог=Итог+"ї"; // украинская
Иначе
Итог=Итог+Симв(КодСимв("р")+Код2-128);
КонецЕсли;
КонецЕсли;
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.