Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Преобразование строки в BASE64

Преобразование строки в BASE64
Я
   zloba
 
11.09.19 - 16:35
Добрый день.
Пытаюсь преобразовать строку в BASE64, получаю левый символ...
     ВременныйФайл = ПолучитьИмяВременногоФайла();
     
    //UTF-8 без BOM

     ЗаписьТекста = Новый ЗаписьТекста(ВременныйФайл, "CESU-8", "", Ложь, "");
     ЗаписьТекста.Записать("{""id"": """ + id + """, ""password"": """ + hash +"""}");
     ЗаписьТекста.Закрыть();
     
     ДД_Файла = Новый ДвоичныеДанные(ВременныйФайл);
     СтрокаBase64 = Base64Строка(ДД_Файла);





Ожидание:
eyJpZCI6ICLQkNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgCIsICJwYXNzd29yZCI6ICJhMTBiMTI1YTg5N2VjOGU5NTQwNTczZGU2YjI3MDJhZSJ9

Реальность:
eyJpZCI6ICLQkNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgCIsICJwYXNzd29yZCI6¶ICJhMTBiMTI1YTg5N2VjOGU5NTQwNTczZGU2YjI3MDJhZSJ9

Через поток ситуация такая же.
Кто-нибудь спотыкался об это?
 
 
   MM
 
1 - 11.09.19 - 16:55
СтрЗаменить(СтрокаBase64, Символы.ВК+Символы.ПС, "") - не помогает?
Да и CESU-8 не выглядит правильным вместо ЗаписатьBOM=ложь.
   tejije
 
2 - 11.09.19 - 17:00
(0)
Функция СтрокаВBase64(СтрокаДанных) Экспорт

    Поток = Новый ПотокВПамяти;
    Запись = Новый ЗаписьДанных(Поток, КодировкаТекста.UTF8);
    Запись.ЗаписатьСимволы(СтрокаДанных);
    Запись.Закрыть();
    ДвоичныеДанные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
    СтрокаФорматBase64 = Base64Строка(ДвоичныеДанные);
    СтрокаФорматBase64 = СтрЗаменить(СтрокаФорматBase64, Символы.ВК, "");// убираем ВК

    СтрокаФорматBase64 = СтрЗаменить(СтрокаФорматBase64, Символы.ПС, "");// убираем ПС


    Возврат СтрокаФорматBase64;

КонецФункции

Функция СтрокаИзBase64(СтрокаФорматBase64) Экспорт

    ДвоичныеДанные = Base64Значение(СтрокаФорматBase64);
    Поток = Новый ПотокВПамяти;
    Запись = Новый ЗаписьДанных(Поток, КодировкаТекста.UTF8);
    Запись.Записать(ДвоичныеДанные);
    Запись.Закрыть();
    Данные = Новый ЧтениеДанных(Поток, КодировкаТекста.UTF8);
    СтрокаДанных = "";
    Пока Не Данные.ЧтениеЗавершено Цикл
        СтрокаДанных = СтрокаДанных + Данные.ПрочитатьСтроку();
    КонецЦикла;
    Данные.Закрыть();
    Поток.Закрыть();

    Возврат СтрокаДанных;

КонецФункции

не благодари)
   zloba
 
3 - 11.09.19 - 17:03
Спасибо
   tejije
 
4 - 11.09.19 - 17:04
(3) пока ты добрый) укради у кого нибудь кружку) - Дайте нахаляву фирменную кружку 1с!

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.