Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1383251402
Юрий
2013-11-01 00:30
2014.04.20
С днем рождения ! 1 ноября 2013 пятница


15-1382733003
Юрий
2013-10-26 00:30
2014.04.20
С днем рождения ! 26 октября 2013 суббота


2-1373632555
Token
2013-07-12 16:35
2014.04.20
TActionManager, добавление элементов меню


2-1373240956
Vasa777
2013-07-08 03:49
2014.04.20
Encode64


15-1382550265
Jeer
2013-10-23 21:44
2014.04.20
Открываем осенне-зимний велосезон..





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский