gifts2017

Base64 преобразование туда и обратно без файловых операций (Управляемое приложение)

Опубликовал mxm2 mxm2 (mxm2) в раздел Обработки

Если очень хочется, а сохранять данные в бинарном виде (в файл) нет возможности, то это реализация прямого и обратного преобразования Base64 с поддержкой кириллицы на utf-8, без использования внешних объектов.
Описание Base64: https://ru.wikipedia.org/wiki/Base64
Соответствие utf-8 и unicode: https://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 (подпункт UTF-8)

В реализации две функции СтрокаВСтроку64 и Строка64ВСтроку, которые аналогичны Base64Строка и Base64Значение, работающим с двоичными данными.

Похожая публикация, но описывающая работу с массивом байт: Двоичные данные и кодировка Base64 в 1С 8.Х


 

Скачать файлы

Наименование Файл Версия Размер
Base64 69
.epf 7,72Kb
07.09.14
69
.epf 1.001 7,72Kb Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

1. Дмитрий Шерстобитов (DitriX) 08.09.14 14:43
А зачем? Я действительно не до конца понимаю.
base64 было нужно для передачи двоичных данных при помощи текста.
А тут вы кодируете текст в текст. Смысл?

Может есть некая тайная суть, которую я не до конца понимаю?
2. Ийон Тихий (cool.vlad4) 08.09.14 12:51
(1) DitriX, такое часто бывает нужно для веба. например получить в виде base64 текста. да и много где такое бывает нужно.
mnemchinov; +1 Ответить 1
3. Михаил Немчинов (mnemchinov) 08.09.14 12:51
(2) cool.vlad4, Присоединяюсь к ответу. Пишу в последнее время много всяких обменов с различными вэб серверами. Плюс, однозначно.
4. Xer shi (Xershi) 23.11.15 17:23
Вся соль обработки в том что она заточена для обмена русского текста(utf-8) по веб?
5. mxm2 mxm2 (mxm2) 24.11.15 13:19
(4) Xershi, имитация Base64Строка и Base64Значение без файловых операций.
6. Xer shi (Xershi) 24.11.15 13:24
(5) mxm2, так они и не работают с файлами, а с двоичными данными и строкой в Base64.
7. Дмитрий Тарасов (tarassov) 29.03.16 15:25
(6) Xershi,
Не понял. Каким образом ДвоичныеДанные можно получить из строки, не используя временный файл?
8. Xer shi (Xershi) 29.03.16 15:28
(7) tarassov,
Глобальный контекст (Global context)
Base64Значение (Base64Value)
Синтаксис:

Base64Значение(<Строка>)
Параметры:

<Строка> (обязательный)

Тип: Строка.
Строка, закодированная по алгоритму base64.
Возвращаемое значение:

Тип: ДвоичныеДанные.


Описание:

Получает из строки закодированной по алгоритму base64 двоичные данные.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).

Думаю понятно, что тут файл не используется.
А вот уже:
ДвоичныеДанные (BinaryData)
Методы:

Записать (Write)
Размер (Size)

Конструкторы:

На основании файла

Описание:

Значение содержит двоичные данные, которые считываются из файла. Значение может быть сохранено в ХранилищеЗначения.
Хранимые данные могут быть записаны в файл.
9. Александр Топольский (AlexanderKai) 15.07.16 11:59
(6) Xershi,
А двоичные данные только на основании файла, что как бы намекает.
tarassov; +1 Ответить
10. Роберт В е р т и н с к и й (v3rter) 15.07.16 12:08
Зачем это нужно? Ловите смайлик )

MIME-Version: 1.0
Content-Type: application/octet-stream; name="Smiley.svg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Smiley.svg"

iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c­6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAGYktHRAD/AP8A/6C9p5MA­AAqjSURBVGhD3Vpb
bBXXFd137r2+xgEnIDCY0MYiUkNAKUW4+AUB8RKhqaqqyld/UL4JH1AQqhTy­lXxACslnWkX5iT8q
oiYNNkZgQiCAwU6DTVEeH+QFJuXRxsY2tq/tO13rnNmeM+Nr+9pYqtQl7bvP­nOdas89jZuyED8j/
AWZMyMiISEfHNfH9dunvb5dE4p4MDX2N6/+gdAjlxZJMPo7ruZLJrBHP2yDV­1StRz7Z/WDy0kLa2
czI8fArkLsny5WnJ5XyQy6FkGH7IeN8fgB9EWR/S/bAeXPdLa6tINrtR0uld­snnzb5A3fUxLSDYr
0t7+Pu7qh7JypQeCHnJ93HUUSBYCsiDL9KC5pvd9a5rO5QYllRqA7zVR+fhj­wfVB2bJlLyKHalPE
lIVcvnxGSko+kKefzoCQh2jonbcCLFGmrQglr0YBIgOmjhXE9CDIM5IiFy6A­VOI9CPod6hWOgoV0
dY3I1auHpKaGRIpw90dGBagIFaJRsGKikbAibJpTjsKsz8GLiQYj3tT0c9m+­vUPmzkWTAlCQkG++
uSkDA3+WZcvmYxDeOaxsLOB4JDQKYdqujdCiIuhViO8PIy3GyKioSOTiRZFF­i27JihXlaDsxJhVy
9eoVmT//ODpciGmkC5kCKISEQ+IaAb2OCtF0PjH0Q6NC1FIpkS+/RKvB81Jb­W4e244OrdFxQRHn5
SVm48CcQUQxyGVgRFnkalgosOWqJhDdquEcw9W6a5QnU5zRKmKkU+qhh+clT­T4k8+uharB2EZwKM
K+T69e+lrKxJ5s0rx90heYqgGNwmScG7xONkicm8HZrt84mwQu359MQTgg2m­Tq5d+8G0yYe8Qu7f
97Em/gIhZRDBKiRdjM7T8Lz7HixhSFhgREMwSjLqOYPVs55eW/BexEWoUQwj­c+vWYunuDhrEEPbk
4MqVg1hgC3Ayc7AcOubasIdbIsE089VKYOnAM1pKciJPuENrXlQE03rNnWzd­OpHjx1cFNaMYI6St
7azU1Q1ggbETbrHcobigB5DmDoWJC0EUKDJHdu8+irw/wg7gjPkeeRRDwvmM­oE/IpUv9aHMb1i17
9vAmRcW4IjRaFLNtW7s0N38Q1AwREULymcx72EGK0NgSju5K3Hl4zTJPGhou­yJEjOMECVFf/Fb8s
Iyg0LoR5RA7n0Z0gLXL4cE4aG1keIi6C10ynEfxc7rdmI3AREdLe/jdMqWJU­ZK3wsPM8VwS3UHpP
du58Hz6KAwcu4RcjG9JqKsKSffnlfxvvYufOIOHAjYwa10sdduLm5kNBLQsU­hUgmP0RFkrBCPE/P
CpK3Z0AoZFC++27symts5PRS4vnMR50++Ci+/TZIxKBRUSFM8+QbHt4X1LAY­FdLaeg4PgEkTDU4n
z7Nkw4Ot31xbG8JGcA9+LDo7SZKEubZcC8V0dsbmRYD4dCFUBL2mGZUNGxiV­hqCWI2Rk5BSUeuaE
pfGuh5FQC0/ndHq0aQSlpdzB7A4XFRJaaSkY5QFP8nxwo6HGqAwNHQ5qBEJ4­J9LpSyjk1mqjoSLG
TitN2w7jqKmZh1/WoRA1V8gwHjcy8FGQ6HhQ8nExyeSZoEYgpKOjQ555hk+0­9gFQn4VCETqtKEAF
9cj+/WP39Fde+Rl+WccV4ooZxoYwCz6K/fuDxDhQEeo5vaqrRc6d+8yW8yeX­uwrj/A2nlJolxfWi
AtR65LXXqrFdc3OwePHFn8rSpaVIsZx96RSL2pNPerJjB6egRXGxyKuvBhcT­wI0GjdPL95tNmRGS
zXagIAfTSMTXR76I0N/Ho8zv5e23V8vp07XwlSZvIhHWsvLOO2ks1gTaoHd2­PwmUvKYJRieb/cSk
zWN8S8sOWbXqBkTMQmEKc0+fp3i3qZUtuaXSM3IEp4nuTgQJUpyKUGM08xlv­BssLByfNEJpwWtGI
lpZVsnXrZxoRbuIkYiPiekvOjQhJaFTUHgTGsrgITbsR0bypw51WjMjIyNcm­3wgZGbmLXx3YkuNp
HhJ2ybvnSdxYzzUlHDeKmR5cEYTv20M5uAx3KiVl0yRPi0dE02H9MF/TrsWF­6HScOQRCZsPsa6cu
+JC0S17z3TLNpylxmpLWtPrpR4NgNBgVs8kCnveY9fxJJvkWyEcLK8IK4cBK­lBFRASTDvLgI19hW
vSuC9nCwW24oxvOWmnwjJJfjacwvgGE0+GHAkqEPidXV/ROehNxyejVXhGuF­i6itDRIxUIBC04nE
48YbIalUJcT0OEI0MkqSERmW5567LvX1C5HWHcoV6ZqS1/TUptO774ps3x5c­BNBIaJpgRNLptSZt
hHjeeigLI6KfaeyhSCIj8tJLnXjiTElFBXuhgHwi8l1PfWEvxWx59lmRXbuC­DEB3K9eY53lbTbkR
Ulu7Cq+eXCv6nSkLpYPy1lvdsnnzv6Sq6gYOnj65e1enlEbKTeu1imFdip4e­7uJE4OfTqiqRTZsE
XPTt0Irge0pLCwX/wjbgyU40NW3y798Xv7u72O/tLfEHBmbD5qCkFDYX9hhZ­+ffuzQ7y6Etgs2AZ
WArGBwV2+XAGEWYsNw+v4eAj4EaOYrgeP74JZRYmIkQms9t4nVr8+ud59tus­CHe0fjl4MCXz5/ci
HY8KPdfB9CPgYsECkUPOmyyjoLsURBkjSkr+YBNEIMigoUH8Hqx5Ku7rs3cg­i7MSHaDUWlmZ+KWl
4fVM25w54i9aFF5zbHIgF3IiN3I8dozlIUYjYnEIUbCKqV7vgD6gEbdv8wOe­yCOPBBkziJISvBz0
iPzgfFDk2HE+5Oh5fwpqBAgEGQwN+f6JE2FUOB/xiG3mJzpEjdDYlHbxYjR/­Onb+fNifm88xOTY5
6Nogt6Ym8YeHUcVBJCJ8Z04m/24+hKEjcwf0jtDzWsE8fpPl4VWJ15CbN4OC­KeDGDZHVq0XW4iio
qLB9KvKNzTS/vaVSx8yuFUEgKIL6+tX+gwfi//ijvQO6XvAuMCYyb7wR3s3F­i8U/ckR8iIrUcQ3k
TZ3y8rDdm29G63AMjqXrghzIhZzq6ytRZyzYcgy6uvAC2Ww76eqyHbETXfxx­MbR9+0JiakVF4i9Z
Yo3peDnbxPth37q4OSbHJgdyIafublTLg3H/0PPFF3ekr2+hLFtmQ6ufLdWr­cVt08emnIkeP8qOA
yLVrIpjbBtiNZMUKe2K/8IKdji7IgtNHjWOq55j8g8/s2XfAB3tzHkz4F6uW­llYQqDLz1xUTF5JP
UKHg6HERajomv0L29rZKdfUvg1ZjMemf3igmk6kyf5/g96+JhLg2EZS8K0K9­a9x8vvqKC7xNampi
IYxhUiHE55/fls7ORebjMV/+lbwrwE0T6uPQ0eIiNK3X/GMon7UWL74ty5eX­2UYToCAhBBadNDZW
ypYt/0CEbNjjAlwj1Ct0JCXumgrgVOIWe/JkpTz/fJtZW4WgYCGK06cbcM78­Wtavt4OroMlEKHQ0
FaCm6+/sWT7lNuCp+1e2YoGYshCC5E+ceB0E9pqv4uyBxLmGJhKjIyl5rgFt­y3/hSCRex8vbHiNo
qpiWEBcffdSECB0CqTOyZo0lptMtH3QKsfzyZd6UjVgPe2Xjxm1BjenhoYW4­uHChHcROycDAJyB8
A4L44a/LFspc5FUgb4kUF6/DVNqCzSN4KZoBzKiQ/x1E/gt3xpzpi/70uAAA­AABJRU5ErkJggg==

Это я для примера "зачем". Подобным способом кодировались бинарные файлы в доинтернетовских сетях.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа