Кодировка.Преобразовать (Encoding.Convert) Метод

Синтаксис

Преобразовать(<КодировкаИсточника>, <КодировкаНазначения>, <БайтМассив>)

Параметры

КодировкаИсточника (обязательный)
Тип: Кодировка (Encoding).
Кодировка, в которой находится БайтМассив.
КодировкаНазначения (обязательный)
Тип: Кодировка (Encoding).
Кодировка, требуемая для возвращаемого массива байтов.
БайтМассив (обязательный)
Тип: МассивСписок (ArrayList).
Объект МассивСписок (ArrayList) байтов для преобразования.

Возвращаемое значение

Тип: МассивСписок (ArrayList).

Объект МассивСписок (ArrayList), содержащий результат преобразования.

Описание

Преобразует массив байтов из одной кодировки в другую.

Примечание

При преобразовании массива байтов, с использованием кодировки, полученной через свойство ПоУмолчанию (ByDefault), и получением после этого строкового значения, в конце строки может быть добавлено несколько символов.

Эти символы будут соответствовать коду 9702 в кодировке Unicode (Прозрачный маркер списка).

Пример

Кодировка1 = Ф.Кодировка().Юникод; // задали исходную кодировку
Кодировка2 = Ф.Кодировка().UTF7; // задали конечную кодировку
МассивСписок1 = Кодировка1.ПолучитьБайты("Некоторый текст и ! знак, и буква В!"); // получили массив байтов в исходной кодировке
МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); // преобразовали массив байтов в конечную кодировку
Сообщить("Кодировка1 = " + Кодировка1.ПолучитьСтроку(МассивСписок1)); // Кодировка1 = Некоторый текст и ! знак, и буква В!
Сообщить("Кодировка2 = " + Кодировка2.ПолучитьСтроку(МассивСписок2)); // Кодировка2 = Некоторый текст и ! знак, и буква В!
Полный пример кода

Копировать     Выделить всё

ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll"); Ф = Новый ФормыДляОдноСкрипта(); Форма1 = Ф.Форма(); Форма1.Отображать = Истина; Форма1.Показать(); Форма1.Активизировать(); Кодировка1 = Ф.Кодировка().Юникод; // задали исходную кодировку Кодировка2 = Ф.Кодировка().UTF7; // задали конечную кодировку МассивСписок1 = Кодировка1.ПолучитьБайты("Некоторый текст и ! знак, и буква В!"); // получили массив байтов в исходной кодировке МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); // преобразовали массив байтов в конечную кодировку Сообщить("Кодировка1 = " + Кодировка1.ПолучитьСтроку(МассивСписок1)); // Кодировка1 = Некоторый текст и ! знак, и буква В! Сообщить("Кодировка2 = " + Кодировка2.ПолучитьСтроку(МассивСписок2)); // Кодировка2 = Некоторый текст и ! знак, и буква В! Ф.ЗапуститьОбработкуСобытий();

Тестовый код

Копировать     Выделить всё

ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll"); Ф = Новый ФормыДляОдноСкрипта(); Форма1 = Ф.Форма(); Форма1.Отображать = Истина; Форма1.Показать(); Форма1.Активизировать(); ТестПройден = Истина; Текст1 = "Некоторый текст и ! знак, и буква В!"; Кодировка1 = Ф.Кодировка().UTF7; // задали исходную кодировку Кодировка2 = Ф.Кодировка().UTF7; // задали конечную кодировку МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); // получили массив байтов в исходной кодировке МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); // преобразовали массив байтов в конечную кодировку Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().UTF7; Кодировка2 = Ф.Кодировка().UTF8; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().UTF7; Кодировка2 = Ф.Кодировка().ОбратнаяUTF16; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().UTF7; Кодировка2 = Ф.Кодировка().Юникод; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().UTF8; Кодировка2 = Ф.Кодировка().UTF7; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().UTF8; Кодировка2 = Ф.Кодировка().UTF8; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().UTF8; Кодировка2 = Ф.Кодировка().ОбратнаяUTF16; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().UTF8; Кодировка2 = Ф.Кодировка().Юникод; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().ОбратнаяUTF16; Кодировка2 = Ф.Кодировка().UTF7; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().ОбратнаяUTF16; Кодировка2 = Ф.Кодировка().UTF8; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().ОбратнаяUTF16; Кодировка2 = Ф.Кодировка().ОбратнаяUTF16; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().ОбратнаяUTF16; Кодировка2 = Ф.Кодировка().Юникод; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().Юникод; Кодировка2 = Ф.Кодировка().UTF7; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().Юникод; Кодировка2 = Ф.Кодировка().UTF8; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().Юникод; Кодировка2 = Ф.Кодировка().ОбратнаяUTF16; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Кодировка1 = Ф.Кодировка().Юникод; Кодировка2 = Ф.Кодировка().Юникод; МассивСписок1 = Кодировка1.ПолучитьБайты(Текст1); МассивСписок2 = Ф.Кодировка().Преобразовать(Кодировка1, Кодировка2, МассивСписок1); Если Не (Текст1 = Кодировка2.ПолучитьСтроку(МассивСписок2)) Тогда ТестПройден = Ложь; КонецЕсли; Сообщить(?(ТестПройден, "", "!!! ") + "Кодировка.Преобразовать (Encoding.Convert) Метод" + " " + ТекущаяДата());

Смотрите также

Кодировка (Encoding) Класс | Библиотека OneScriptForms