0
zloba
11.09.19
✎
16:35
|
Добрый день.
Пытаюсь преобразовать строку в BASE64, получаю левый символ...
ВременныйФайл = ПолучитьИмяВременногоФайла();
//UTF-8 без BOM
ЗаписьТекста = Новый ЗаписьТекста(ВременныйФайл, "CESU-8", "", Ложь, "");
ЗаписьТекста.Записать("{""id"": """ + id + """, ""password"": """ + hash +"""}");
ЗаписьТекста.Закрыть();
ДД_Файла = Новый ДвоичныеДанные(ВременныйФайл);
СтрокаBase64 = Base64Строка(ДД_Файла);
Ожидание:
eyJpZCI6ICLQkNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgCIsICJwYXNzd29yZCI6ICJhMTBiMTI1YTg5N2VjOGU5NTQwNTczZGU2YjI3MDJhZSJ9
Реальность:
eyJpZCI6ICLQkNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgCIsICJwYXNzd29yZCI6¶ICJhMTBiMTI1YTg5N2VjOGU5NTQwNTczZGU2YjI3MDJhZSJ9
Через поток ситуация такая же.
Кто-нибудь спотыкался об это?
|
|
2
tejije
11.09.19
✎
17:00
|
(0)
Функция СтрокаВBase64(СтрокаДанных) Экспорт
Поток = Новый ПотокВПамяти;
Запись = Новый ЗаписьДанных(Поток, КодировкаТекста.UTF8);
Запись.ЗаписатьСимволы(СтрокаДанных);
Запись.Закрыть();
ДвоичныеДанные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
СтрокаФорматBase64 = Base64Строка(ДвоичныеДанные);
СтрокаФорматBase64 = СтрЗаменить(СтрокаФорматBase64, Символы.ВК, ""); // убираем ВК
СтрокаФорматBase64 = СтрЗаменить(СтрокаФорматBase64, Символы.ПС, ""); // убираем ПС
Возврат СтрокаФорматBase64;
КонецФункции
Функция СтрокаИзBase64(СтрокаФорматBase64) Экспорт
ДвоичныеДанные = Base64Значение(СтрокаФорматBase64);
Поток = Новый ПотокВПамяти;
Запись = Новый ЗаписьДанных(Поток, КодировкаТекста.UTF8);
Запись.Записать(ДвоичныеДанные);
Запись.Закрыть();
Данные = Новый ЧтениеДанных(Поток, КодировкаТекста.UTF8);
СтрокаДанных = "";
Пока Не Данные.ЧтениеЗавершено Цикл
СтрокаДанных = СтрокаДанных + Данные.ПрочитатьСтроку();
КонецЦикла;
Данные.Закрыть();
Поток.Закрыть();
Возврат СтрокаДанных;
КонецФункции
не благодари)
|
|