Вход | Регистрация
 
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с!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.