Delphi / Cpp相当于PHP中的RawURLEncode

时间:2013-04-15 11:54:55

标签: php delphi c++builder urlencode html-encode

我在cpp builder(或delphi)中寻找与PHP RawURLEncode(和Decode)等效的函数。

我使用以下字符串进行测试:_%_&_+_=_ _"_'_a_b_c_d_e_f_g_h_(我希望只编码var值,而不是整个URL)

rawurlencode返回:_%25_%26_%2B_%3D_%20_%22_%27_a_b_c_d_e_f_g_h_

我尝试过没有成功:

  • 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中找不到单位

1 个答案:

答案 0 :(得分:8)

PHP RawURLEncodeRFC 3986的实现。我的网络搜索产生了这个Delphi unit,声称实施了RFC 3986。

我在你的输入上测试了它:

{$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_

我成功的网络搜索的关键在RawURLEncode的PHP文档中找到,其中是州:

  

根据RFC 3986进行URL编码