Платформа 8.3
Вижу на форумах задается вопрос, о том как прочитать строку, закодированную в base64. Т.е. привести её в человеко понятный вид из набора символов. Даются некоторые ответы, листинги функций переведенных из pascal, си.
Рассмотрим как можно попытаться сделать это просто и коротко.
1. Постановка задачи; 2. Попытка решения: листинг; 3.Ссылки
Дано: строка равная например "c21vbGVuY2h1a0BwcmVtaWVyLWVsZWN0cmljLmNvbQ==",
полученная парсером откуда либо, из интернет.
Найти: строку результат: "sample@google.com"
&НаСервереБезКонтекста Функция B64Decode(Encoded, КодировкаТекста=Неопределено) ДвДанные = Base64Значение(Encoded); Если ДвДанные = Неопределено Тогда Возврат Неопределено; КонецЕсли; Если КодировкТекста = Неопределено Тогда ЧтениеДвДанных = Новый ЧтениеДанных(ДвДанные); Иначе ЧтениеДвДанных = Новый ЧтениеДанных(ДвДанные, КодировкаТекста); КонецЕсли; Decoded = ЧтениеДвДанных.ПрочитатьСимволы(); ЧтениеДвДанных.Закрыть(); Возврат СокрЛП(Decoded); КонецФункции
Encoded
КодировкТекста
Decoded = ""; Для НомерБайта = 1 По ДвДанные.Размер() Цикл Значение = ЧтениеДвДанных.ПрочитатьБайт(); Decoded = Decoded + Символ(Значение); КонецЦикла;