Перейти к содержанию
Fire Monkey от А до Я
  • 0

Недоработан модуль Soap.EncdDecd (XE6)


estra

Вопрос

Сразу хочу обратить внимание, это не баг, а простая недоработка. Надеюсь в следующей версии (или ближайшем апдейте/хотфиксе) ее устранят.
 
Теперь к сути.
 
Если кодировать/декодировать данные в пределах одной платформы, то проблем нет, но они появляются когда эти процессы происходят на разных платформах. В моем случае кодирование происходит на Windows, а декодирование на Android. Вот функции декодирования ():
 

function DecodeString(const Input: string;
  InputEncoding, OutputEncoding: TEncoding): string;
var
  InStr, OutStr: TStringStream;
begin
  InStr := TStringStream.Create(Input); // !!!
  try
    OutStr := TStringStream.Create(''); // !!!
    try
      DecodeStream(InStr, OutStr);
      Result := OutStr.DataString; // Тут возникает ошибка
    finally
      OutStr.Free;
    end;
  finally
    InStr.Free;
  end;
end;

А конструктор TStringStream.Create выглядит так:
 

constructor TStringStream.Create(const AString: string);
begin
  Create(AString, TEncoding.Default, False);
end;

TEncoding.Default для Windows равен ANSI, а для Android UTF8. Отсюда ошибка No mapping for the Unicode character exists in the target multi-byte code pdge.

 

Для решения а сделал перезагруженные методы EncodeString и DecodeString, подробности во вложении. Положите файл в папку с проектом и пользуйтесь. Надеюсь разработчики прислушаются и доработают модуль.

Soap.EncdDecd.zip

Ссылка на комментарий

Рекомендуемые сообщения

Ответов пока нет

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...