UrlUnescapeW 函数 (shlwapi.h)

将转义序列转换回普通字符。

语法

LWSTDAPI UrlUnescapeW(
  [in, out]           PWSTR pszUrl,
  [out, optional]     PWSTR pszUnescaped,
  [in, out, optional] DWORD *pcchUnescaped,
                      DWORD dwFlags
);

参数

[in, out] pszUrl

类型:PTSTR

指向带有 URL 的以 null 结尾的字符串的指针。 如果 dwFlags 设置为 URL_UNESCAPE_INPLACE,则转换后的字符串将通过此参数返回。

[out, optional] pszUnescaped

类型:PTSTR

指向缓冲区的指针,该缓冲区将接收一个以 null 结尾的字符串,其中包含 pszURL的未转义版本。 如果在 dwFlags中设置 URL_UNESCAPE_INPLACE,则忽略此参数。

[in, out, optional] pcchUnescaped

类型:DWORD*

pszUnescaped指向的缓冲区中的字符数。 在条目中,pcchUnescaped 指向的值设置为缓冲区的大小。 如果函数返回成功代码且未设置 URL_UNESCAPE_INPLACE 标志,则 pcchUnescaped 指向的值将设置为写入该缓冲区的字符数,而不是对终止 NULL 字符进行计数。 如果返回E_POINTER错误代码,缓冲区太小,并且 pcchUnescaped 点的值设置为缓冲区必须能够包含的所需字符数。 如果返回任何其他错误,则未定义 pcchUnescaped 点的值。

dwFlags

类型:DWORD

用于控制未转义字符的标志。 它可以是以下标志的组合。

URL_DONT_UNESCAPE_EXTRA_INFO

不转换 # 或 ? 字符或字符串中遵循这些字符的任何字符。

URL_UNESCAPE_AS_UTF8

Windows 8中引入的 。 使用 URL_ESCAPE_AS_UTF8 标志解码编码的 URL。

URL_UNESCAPE_INPLACE

使用 pszURL 返回转换后的字符串,而不是 pszUnescaped

返回值

类型:HRESULT

如果成功,则返回S_OK。 如果未设置 URL_UNESCAPE_INPLACE 标志,pcchUnescaped 指向的值将设置为由 pszUnescaped指向的输出缓冲区中的字符数。 如果未设置 URL_UNESCAPE_INPLACE 标志,并且输出缓冲区太小,则返回E_POINTER。 pcchUnescaped 参数将设置为所需的缓冲区大小。 否则,返回标准错误值。

言论

转义序列的格式为“%xy”。

输入字符串不能超过INTERNET_MAX_URL_LENGTH。

注意

shlwapi.h 标头将 UrlUnescape 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional、Windows XP [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 shlwapi.h
Shlwapi.lib
DLL Shlwapi.dll (版本 5.0 或更高版本)