Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Кодирование URL в Delphi и C++ Builder: аналог PHP RawURLEncode

Delphi , Интернет и Сети , URL

Заголовок:

В процессе разработки веб-приложений часто возникает необходимость кодирования URL. В PHP для этого существует функция rawurlencode, но что делать, если вы работаете с Delphi или C++ Builder? В этой статье мы рассмотрим, как найти аналог rawurlencode в этих языках программирования.

Проблема

Разработчик ищет функцию, аналогичную PHP rawurlencode, для использования в C++ Builder или Delphi. Нужно кодировать строку _%_&_+_=_ _"_'_a_b_c_d_e_f_g_h_, но только переменные, а не весь URL.

Решение

PHP rawurlencode реализует стандарт RFC 3986. После поиска в Интернете был найден Delphi-единица, которая утверждает, что реализует этот стандарт. Вот код, который кодирует строку с использованием этой единицы:

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  UURIEncode in 'UURIEncode.pas';

begin
  Writeln(URIEncode('_%_&_+_=_ _"_''_a_b_c_d_e_f_g_h_'));
  Readln;
end.

Вывод кода:

_%25_%26_%2B_%3D_%20_%22_%27_a_b_c_d_e_f_g_h_

Как видно, результат кодирования совпадает с результатом PHP rawurlencode.

Альтернативный ответ

Разработчик также пытался использовать другие функции кодирования URL в Delphi и C++ Builder, но безуспешно. Вот список попыток:

  • TIdURI::ParamsEncode: _%25_&_+_=_%20_%22_'_a_b_c_d_e_f_g_h_
  • TIdURI::PathEncode: _%25_&_%2B_=_%20_%22_'_a_b_c_d_e_f_g_h_
  • TIdURI::URLEncode: Ошибка: нет протокола (требуется полный путь)
  • HTTPApp::HTMLEncode: _%_& amp;_+_=_ _& quot;_'_a_b_c_d_e_f_g_h_ (добавлено пространство после "&")
  • Wininet::WinHTTPEncode: Функция не найдена в единице
  • IdGlobal::URLEncode: Функция не найдена в единице
  • SynaCode::URLEncode: Единица не найдена в XE2

Подтвержденный ответ

PHP rawurlencode реализует стандарт RFC 3986. После поиска в Интернете был найден Delphi-единица, которая утверждает, что реализует этот стандарт. Вот код, который кодирует строку с использованием этой единицы:

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  UURIEncode in 'UURIEncode.pas';

begin
  Writeln(URIEncode('_%_&_+_=_ _"_''_a_b_c_d_e_f_g_h_'));
  Readln;
end.

Вывод кода:

_%25_%26_%2B_%3D_%20_%22_%27_a_b_c_d_e_f_g_h_

Заключение

В этой статье мы рассмотрели, как найти аналог PHP rawurlencode для использования в Delphi и C++ Builder. Мы нашли Delphi-единица, реализующую стандарт RFC 3986, и использовали ее для кодирования строки. Несмотря на то, что другие попытки кодирования URL не увенчались успехом, мы нашли работающее решение, которое можно использовать в наших проектах.

Создано по материалам из источника по ссылке.

В статье рассматривается решение задачи кодирования URL в Delphi и C++ Builder, где ищется аналог функции PHP `rawurlencode`.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: URL ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 03:48:28/0.0050139427185059/1