Внешняя Native компонента, которая позволяет определить имя кодировки текста из двоичных данных.
В приложении Native компонента собрана для Windows (32 и 64 бита) и Linux (только 64 бита).
Протестировано на версиях платформы 8.3.16.1359 и 8.3.20.1710.
Ниже приведены примеры использования:
// Подключаем компоненту из общего макета
Подключено = ПодключитьВнешнююКомпоненту("ОбщийМакет.Детектор", "Детектор", ТипВнешнейКомпоненты.Native);
Если Не Подключено Тогда
УстановитьВнешнююКомпоненту("ОбщийМакет.Детектор");
Подключено = ПодключитьВнешнююКомпоненту("ОбщийМакет.Детектор", "Детектор", ТипВнешнейКомпоненты.Native);
Если Не Подключено Тогда
Сообщить("Не удалось подключить внешнюю компоненту!", СтатусСообщения.Важное);
Возврат;
КонецЕсли;
КонецЕсли;
// Создаём объект Детектора кодировки
Детектор = Новый ("AddIn.Детектор.Chardet");
// Пример быстрого получения кодировки файла
ДвоичныеДанные = Новый ДвоичныеДанные("<Путь к текстовому файлу>");
Кодировка = Детектор.ОбработатьИЗавершить(ДвоичныеДанные);
Сообщить("Кодировка файла = " + Кодировка);
// Пример получения кодировки из несколько частей (файлов)
ДвоичныеДанные1 = Новый ДвоичныеДанные("<Путь к текстовому файлу 1>");
ДвоичныеДанные2 = Новый ДвоичныеДанные("<Путь к текстовому файлу 2>");
Детектор.Сбросить();
Детектор.ОбработатьДанные(ДвоичныеДанные1);
Детектор.ОбработатьДанные(ДвоичныеДанные2);
Кодировка = Детектор.Завершить();
Сообщить("Кодировка файла из несколько частей = " + Кодировка);
// Пример получения строки из двоичных данных, путём обрезания данных до валидной UTF-8 строки
Текст = Детектор.СтрокаUTF8(ДвоичныеДанные);
Сообщить("Текст Юникод = " + Текст);