Доброго времени суток. Помогите советом пожалуйста, в какую сторону копать. Задача: Выгрузить в XML файл с кодировкой UTF-8 тег с кирилицей.
В начале было так:
XML_Документ.Кодировка = "UTF-8";
Если ПустоеЗначение(XML_Документ) = 1 Тогда
Сообщить("Формат файла не XML!","!");
Возврат;
КонецЕсли;
ФайлЗагрузки = СтрИмяФайла;;
XML_Документ.Загрузить(ФайлЗагрузки);
Общий = XML_Документ.ВыбратьУзел("DOCUMENTS");
Нов = Общий.СоздатьПодчиненныйЭлемент("DOCUMENT");
Нов.УстановитьАтрибут("id_doc","Р"+НомерДок); //Этот атрибут (НомерДок имеет значение НП-023565)
Нов.УстановитьАтрибут("date_doc",Формат(ДатаДок,"DDMMYY"));
Нов.УстановитьАтрибут("kontr_id",Контрагент.Код);
Нов.УстановитьАтрибут("podr_id", МестоХранения.Код);
(...)
При сохранении XML файла тег id_doc в файле имеет значение *пара иероглифов*-023565.
Путем великого гугла нарыл функцию ПреобразоватьСтрокуВУТФ8(). Ее листинг:
Длина=СтрДлина(Стр);
Итог="";
Для Н=1 По Длина Цикл
Знак=Сред(Стр,Н,1);
Код=КодСимв(Знак);
Если Код<128 Тогда
Итог=Итог+Знак;
Иначе
Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
Итог=Итог+Симв(208)+Симв(144+Код-КодСимв("А"));
ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
Итог=Итог+Симв(209)+Симв(128+Код-КодСимв("р"));
ИначеЕсли (Знак="ё") Тогда
Итог=Итог+Симв(209)+Симв(145);
ИначеЕсли (Знак="Ё") Тогда
Итог=Итог+Симв(208)+Симв(129);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Итог;
После
Нов.УстановитьАтрибут("id_doc",ПреобразоватьСтрокуВУТФ8(Строка("Р"+НомерДок)));
значение тега id_doc в файле стало *ИероглифыДругогоВида*-023565...
Не подскажите, как правильнее перекодировать кирилицу в УТФ8, чтобы она адекватно отображалась. Спасибо.