Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.04.20;
Скачать: CL | DM;

Вниз

Encode64   Найти похожие ветки 

 
Vasa777   (2013-07-08 03:49) [0]

Применимо ли кодирование Base64 к юникодовым строкам? DXe4. Подключаю unit Soap.EncdDecd; В исходной строке (типа string/widestring) есть нечитабельная строка*, получившаяся в результате шифрования. Пытаюсь ее преобразовывать DecodeBase64 и потом при дешифровании EncodeBase64. Вижу что работает неправильно. Залез в исходник EncdDecd. Вижу там некий {$IFDEF NEXTGEN}, который выключен и функции выполняются другие (ansistring).
1/ Где его включить?
2/ Применимо ли кодирование Base64 к юникодовым строкам вообще?
3/ Может есть другой способ отображать и хранить такие строки*?


 
Vasa777   (2013-07-08 03:50) [1]

>>DecodeBase64 и потом при дешифровании EncodeBase64
т.е. наоборот


 
RWolf ©   (2013-07-08 08:37) [2]

Base64 кодирует произвольные последовательности байт, в том числе и юникодные строки.


 
Anatoly Podgoretsky ©   (2013-07-08 12:19) [3]

кодирование Base64 применимо к любым двоичным данным.


 
Vasa777   (2013-07-08 12:24) [4]

спасибо. а что на счет NEXTGEN?

т.е. там есть вот такое в начале юнита

unit Soap.EncdDecd;

interface

uses System.Classes, System.SysUtils;

procedure EncodeStream(Input, Output: TStream);
procedure DecodeStream(Input, Output: TStream);
function  EncodeString(const Input: string): string;
function  DecodeString(const Input: string): string;

{$IFDEF NEXTGEN} // вот тут не работает
function  DecodeBase64(const Input: string): TBytes;
function  EncodeBase64(const Input: Pointer; Size: Integer): string;
{$ELSE !NEXTGEN}
function  DecodeBase64(const Input: AnsiString): TBytes;
function  EncodeBase64(const Input: Pointer; Size: Integer): AnsiString;
{$ENDIF NEXTGEN}

implementation
.....

но где этот nextgen включается не нашел


 
Vasa777   (2013-07-08 12:25) [5]

Нашел еще у indi реализацию, но там громоздко очень и куча юнитов левых подключается. а тут все в одном. правда работает не так.


 
RWolf ©   (2013-07-08 12:54) [6]


> где этот nextgen включается

в свойствах проекта, например.


 
han_malign   (2013-07-08 14:02) [7]


> Применимо ли кодирование Base64 к юникодовым строкам?

- Base64(как и UUe) - предназначен для упаковки произвольных данных в печатное подмножество ASCII(а также EBCDIC и любого другого расширения http://ru.wikipedia.org/wiki/Переносимый_набор_символов  ).
Unicode - там ни с какого боку не уперся, хотя никто и не мешает вам пользоваться 0-й кодовой страницей для избыточной передачи ANSI-7 в виде UTF-16...


 
DVM ©   (2013-07-08 19:22) [8]

Перед применением Base64 кодирования к строкам в произвольной кодировке надо с помощью класса tencoding получить массив байт строки, который затем и кодировать - все будет тогда правильно.



Страницы: 1 вся ветка

Текущий архив: 2014.04.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
2-1373253608
Виктор_К
2013-07-08 07:20
2014.04.20
Нужен совет


15-1383047999
Demo
2013-10-29 15:59
2014.04.20
Неофициальные исправлния для RAD 2007


2-1372759308
JohnKorsh
2013-07-02 14:01
2014.04.20
"Синхронный" сдвиг Memo.


15-1373021652
^-k-^
2013-07-05 14:54
2014.04.20
Книги. Избранное


2-1372892479
Den
2013-07-04 03:01
2014.04.20
xmlDomNode не знаю как в заголовке уместить.