Delphi/Cpp相当于PHP中的RawURLEncode

Delphi/Cpp相当于PHP中的RawURLEncode,php,delphi,c++builder,urlencode,html-encode,Php,Delphi,C++builder,Urlencode,Html Encode,我在cpp builder(或delphi)中寻找与PHP RawURLEncode(和Decode)等效的函数 我使用以下字符串进行测试:\uU%\ uU&\ uU+\ uU=\ uUA\u b\u c\u d\u e\u f\u g\u h(我希望只编码var值,而不是整个URL) rawurlencode返回:\u25\u26\u2b\u3d\u20\u22\u27\u a\u b\u c\u e\u f\u g\u h 我尝试过但没有成功: TIdURI::ParamsEncode:\

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

我使用以下字符串进行测试:
\uU%\ uU&\ uU+\ uU=\ uUA\u b\u c\u d\u e\u f\u g\u h
(我希望只编码var值,而不是整个URL)

rawurlencode返回:
\u25\u26\u2b\u3d\u20\u22\u27\u a\u b\u c\u e\u f\u g\u h

我尝试过但没有成功:

  • TIdURI::ParamsEncode:
    \u25&&+\u=\ u20\u22\uu a\u b\u c\u e\u g\u h
  • TIdURI::PathEncode:
    \uu25&\u2b\u=\ u20\u22\uu a\u b\u c\u d\u e\u g\u h
  • TIdURI::URLEncode:错误:无协议(需要完整路径)
  • HTTPApp::HTMLEncode:%uuu=“uuquot;”“uu a”u b“u c”u d“u e”f“g”u h(在“&”之后添加空格)
  • Wininet::WinHTTPEncode:在单元中找不到函数
  • IdGlobal::URLEncode:在单元中找不到函数
  • SynaCode::URLEncode:在XE2中找不到单元

PHP的
RawURLEncode
是.My websearch的一个实现,它产生了一个声明实现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_ _%25%26%2B%3D%20%22%27%_ 我成功的Web搜索的关键在于PHP文档中的where is states:

根据RFC 3986进行URL编码


下载你问C++ C++ Builder或Delphi。我给了你Delphi。现在你知道要搜索什么,我相信你可以找到一个干净的C++实现RFC 3986。它确实非常简单。我甚至留下了答案的底部,关于如何执行相同的网络搜索,我做了。-)我已经有“家”编码功能。(对于flash、cpp和php),事实上,我正在搜索使用更标准化和通用函数的库。在这个场景中,似乎更好地维护旧函数,但我非常感谢您的帮助。