【问题标题】:How to unescape an escaped wide string in Delphi?如何在 Delphi 中对转义的宽字符串进行转义?
【发布时间】:2012-11-10 10:59:51
【问题描述】:

我的一些宽字符串包含用 转义的字符 例如: 宽字符串源如下所示:'   ' 转换后的结果必须是' '(3 个空格)。

函数应该是这样的

function UriUnescape(const aSrc: WideString): WideString;
begin
  //Your code goes here
end;

注意:1)我使用的是 Delphi 7。

2) 这个宽字符串是 SOAP 响应的一部分,而不是 HTML。

3) 通常,此方法应接受字母数字字符作为宽字符串的一部分:示例输入 :='be @' 结果 := 'be @'

【问题讨论】:

    标签: delphi pascal widestring


    【解决方案1】:

    您的 C# 链接是关于 URL 非转义的,但您的源字符串看起来更像 HTML encoded。 在这种情况下,请参阅HttpApp 单元中的HtmlDecode 函数。

    如果您想要 URL 解码,您可以尝试 HttpDecode 或 Indy 的 TIdURL.URLDecode

    【讨论】:

    • @arioch 这正是你想要发生的事情
    • @David 是的,可能。这就是重点。单独为 numeric SGML entities 制作临时解析器很容易,甚至可能比搜索库更容易(至少肯定会减少依赖项),但有一天它可能会意外地突然遇到命名的解析器。
    • 这些功能不起作用,我还是没有想要的结果(3个空格)
    • @mas_oz2k1 HtmlDecode('   ') 返回' '(3 个空格)。
    • HTMLDecode 工作正常,我正在测试不适用于这种情况的 HTTPDecode 和 UrlDecode。
    猜你喜欢
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多