Форум: "Начинающим";
Текущий архив: 2014.04.20;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c