Тип: Строка. Кодировка исходного документа XML. Содержит значение атрибута encoding объявления XML. Если атрибут не указан или объявление не прочитано (отсутствует), то будет возвращена кодировка UTF8.
Полное описание, параметры и ограничения
ЧтениеFastInfoset.КодировкаXML (FastInfosetReader.XMLEncoding)
ЧтениеFastInfoset (FastInfosetReader)
КодировкаXML (XMLEncoding)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: Строка.
Кодировка исходного документа XML.
Содержит значение атрибута encoding объявления XML.
Если атрибут не указан или объявление не прочитано (отсутствует), то будет возвращена кодировка UTF8.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Поддерживаемые коды кодировок (с учетом правил http://www.w3.org/TR/2004/REC-xml-20040204/#NT-EncName):
UTF-8
UTF-16
UTF-16BE
UTF-16LE
ISO-8859-1
US-ASCII
gb18030
iso-8859-2
iso-8859-3
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
iso-8859-9
iso-8859-13
iso-8859-15
Shift_JIS
EUC-JP
Big5
Big5-HKSCS
GBK
GB2312
GB_2312-80
EUC-KR
KSC_5601
windows-949
windows-874
cp866
KOI8-R
KOI8-U
windows-1250
windows-1251
windows-1252
windows-1253
windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
macintosh
x-mac-cyrillic
ISO-2022-JP
ISO-2022-KR
ISO-2022-CN
ISO-2022-CN-EXT
HZ-GB-2312
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Различить текст, CDATA и ЗаписатьБезОбработки в Fast Infoset
В бинарном writer ЗаписатьБезОбработки работает как запись текста: строка <b> не создаёт HTML-тег. Контекст xml:lang, xml:space и xml:base читается отдельно.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Учебная база на платформе 8.5.1.1343. Создайте серверный общий модуль УчебныеЗадачи и процедуру ВыполнитьПример() Экспорт; код урока без директив вставляйте в её тело. Каждый урок запускайте отдельно.
Все документы создаются из собственных строк и чисел в памяти. Не подставляйте файл XML, бинарный архив обмена, ссылки или данные рабочей базы вместо учебных значений.
Fast Infoset — двоичное представление XML. Для чтения нужен соответствующий reader, а не преобразование байтов в UTF-8-строку. Это не формат API Avito и не автоматическое сжатие произвольного JSON.
Запуск в 1С ещё не подтверждён; выполните контрольные проверки в учебной базе. Не сравнивайте точные байты двух кодировщиков: в заданиях проверяется восстановленная структура и значения.
Запись = Новый ЗаписьFastInfoset;
Запись.УстановитьДвоичныеДанные();
Попытка
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьКомментарий("Собственный текстовый урок");
Запись.ЗаписатьИнструкциюОбработки("guide", "mode=test");
Запись.ЗаписатьНачалоЭлемента("note");
Запись.ЗаписатьАтрибут("xml:lang", "ru");
Запись.ЗаписатьАтрибут("xml:space", "preserve");
Запись.ЗаписатьАтрибут("xml:base", "urn:guide:base");
Запись.ЗаписатьТекст(" ");
Запись.ЗаписатьСекциюCDATA("<описание>");
Запись.ЗаписатьБезОбработки("<b>учебный текст</b>");
Запись.ЗаписатьКонецЭлемента();
Данные = Запись.Закрыть();
Исключение
Запись.Закрыть();
ВызватьИсключение;
КонецПопытки;
Если ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
ВызватьИсключение "Не получены собственные Fast Infoset-данные";
КонецЕсли;
Сообщить(Данные.Размер() > 0);
Чтение = Новый ЧтениеFastInfoset;
Чтение.УстановитьДвоичныеДанные(Данные);
Попытка
Содержимое = "";
ДочернихЭлементов = 0;
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Если Чтение.Имя = "note" Тогда
Сообщить(Чтение.Язык = "ru");
Сообщить(Чтение.ПробельныеСимволы = ПробельныеСимволыXML.Сохранять);
Сообщить(Чтение.БазовыйURI = "urn:guide:base");
Сообщить("Версия XML: " + Чтение.ВерсияXML);
Сообщить("Кодировка XML: " + Чтение.КодировкаXML);
Сообщить("Кодировка источника: " + Чтение.КодировкаИсточника);
Сообщить("Standalone: " + Строка(Чтение.Автономный));
Иначе
ДочернихЭлементов = ДочернихЭлементов + 1;
КонецЕсли;
КонецЕсли;
Если Чтение.ЭтоСимвольныеДанные Тогда
Содержимое = Содержимое + Чтение.Значение;
КонецЕсли;
КонецЦикла;
Сообщить(Содержимое = " <описание><b>учебный текст</b>");
Сообщить(ДочернихЭлементов = 0);
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Разбор по шагам
Объявление, комментарий и инструкция обработки записываются отдельно от содержимого note.
Собственные xml:lang/space/base определяют контекст чтения; urn не скачивается и не является источником данных.
Символьные узлы накапливаем независимо от разбиения reader на Текст/СекцияCDATA/ПробельныеСимволы.
Для Fast Infoset локальная справка прямо приравнивает ЗаписатьБезОбработки к ЗаписатьТекст: <b> остаётся данными, не узлом.
Кодировки и версия выводятся как свойства reader; не делаем из них вывод о текстовом формате полученных бинарных байтов.
Как проверить результат
Контекст ru, Сохранять, urn:guide:base и два конечных сравнения ожидаются Истина.
После чтения есть строка с угловыми скобками, но ни одного дочернего b-элемента; пробелы сохранены.
Ожидаемый результат
Сохранён собственный текст и разобраны контекст и различие форматов writer.
На что обратить внимание
У ЗаписьXML семантика ЗаписатьБезОбработки отличается: не переносите этот вывод на текстовый XML-writer.
Наличие угловых скобок в тексте не является доказательством существования DOM-узла или безопасного HTML.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.