новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Перекодировка кириллицы из utf-8 и utf-16 в читабельный текст

  • Добавить свою публикацию
  • для этого требуется регистрация
Функция Кодировка_UTF16_в_Строку(Знач Текст) Экспорт
    ДлинаТекста = СтрДлина(Текст);
    СоответствиеПерекодировки = Новый Соответствие;
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1106),"А");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(8216),"Б");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(8217),"В");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(8220),"Г");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(8221),"Д");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(8226),"Е");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(8211),"Ж");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(8212),"З");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(152),"И");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(8482),"Й");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1113),"К");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(8250),"Л");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1114),"М");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1116),"Н");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1115),"О");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1119),"П");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(160),"Р");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1038),"С");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1118),"Т");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1032),"У");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(164),"Ф");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1168),"Х");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(166),"Ц");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(167),"Ч");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1025),"Ш");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(169),"Щ");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1028),"Ъ");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(171),"Ы");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(172),"Ь");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(173),"Э");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(174),"Ю");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1031),"Я");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(176),"а");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(177),"б");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1030),"в");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1110),"г");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1169),"д");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(181),"е");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(182),"ж");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(183),"з");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1105),"и");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(8470),"й");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1108),"к");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(187),"л");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1112),"м");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1029),"н");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1109),"о");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(1111),"п");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(1026),"р");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(1027),"с");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(8218),"т");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(1107),"у");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(8222),"ф");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(8230),"х");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(8224),"ц");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(8225),"ч");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(8364),"ш");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(8240),"щ");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(1033),"ъ");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(8249),"ы");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(1034),"ь");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(1036),"э");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(1035),"ю");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(1039),"я");
    СоответствиеПерекодировки.Вставить(Символ(1056) + Символ(1027),"Ё");
    СоответствиеПерекодировки.Вставить(Символ(1057) + Символ(8216),"ё");
    НомПозиции = 1;
    РезТекст = "";
    Пока НомПозиции < ДлинаТекста Цикл
        ТекСимв = Сред(Текст,НомПозиции,1);
        КодСимв = КодСимвола(ТекСимв);
        Если (КодСимв = 1056) или (КодСимв = 1057) Тогда
            СледСимв = Сред(Текст,НомПозиции + 1,1);
            РезТекст = РезТекст + СоответствиеПерекодировки[ТекСимв + СледСимв];
            НомПозиции = НомПозиции + 1;
        Иначе
            РезТекст = РезТекст + ТекСимв;
        КонецЕсли;
        НомПозиции = НомПозиции + 1;
    КонецЦикла; 
    Возврат РезТекст;
КонецФункции
 
0
Еще от автора
≡ к списку статей