c# - 解码 u002522、u002522 和大量反斜杠
问题描述
我正在使用 WebClient 来获取一些网络请求:
public static string PostHttp(string url, Dictionary<string, string> headers, Dictionary<string, string> postParams)
{
using (WebClient client = new WebClient())
{
if (headers != null)
{
foreach (var header in headers)
{
client.Headers.Add(header.Key, header.Value);
}
}
var reqparm = new System.Collections.Specialized.NameValueCollection();
if (postParams != null)
{
foreach (var param in postParams)
{
reqparm.Add(param.Key, param.Value);
}
}
byte[] responsebytes = client.UploadValues(url, "POST", reqparm);
return Encoding.UTF8.GetString(responsebytes);
}
}
我在 Visual Studio 中得到如下信息:
\\\"see_more_cards_id\\\",\\\"href\\\":\\\"\\\\\\/page_content_list_view\\\\\\/more\\\\\\/?page_id=200168320060101&start_cursor=\\\\u00257B\\\\u002522timeline_cursor\\\\u002522\\\
在邮递员中,这里看起来更好,我只能进行 url 解码:
\"see_more_cards_id\",\"href\":\"\\\/page_content_list_view\\\/more\\\/?page_id=200168320060101&start_cursor=\%7B\%22timeline_cursor\%22\%3
在 Chrome 调试器中,如下所示:
\"see_more_cards_id\",\"href\":\"\\\/page_content_list_view\\\/more\\\/?page_id=200168320060101&start_cursor=\\u00257B\\u002522timeline_cursor\\u002522\\u00253A\\u002522timeline_unit\\
我正在寻找的是一个解码版本,如:
"see_more_cards_id","href":\"/page_content_list_view/more/?page_id=200168320060101&start_cursor={"timeline_cursor":""timeline_unit:timeline_unit: 1:00000000001564446283:04611686018427387904:091:00000000001564446283:04611686018`427387904:09
我尝试搜索像 u002522 这样的解码字符,但信息非常有限。我发现以下帖子建议使用 Uri.UnescapeDataString 但这没有解码字符。
解决方案
\\\\u002522
这里有很多层。
首先,有 \ 转义为 \。(这可能只是一个试图提供帮助的调试器。)所以,
\\u002522
然后有 \ 转义为 \。所以,
\u002522
然后 \u 转义为 UTF-16 代码单元
%22
然后是字节的 %-encoding(又名 URL-encoding),大概是 UTF-8 代码单元
"
推荐阅读
- python - 如何获取所有子字符串的所有子字符串和所有字符排列?
- firebase - 从 dart 中的 Cloud_Firestore 获取布尔状态
- excel - 如何在 VBA 中输出每次迭代的结果集?
- typescript - VS Code 中的调试不适用于 Typescript Vue 应用程序
- powershell - 将随机数批量添加到文件名的最佳方法?
- javascript - 错误:无效登录:一切看起来都很好时的nodeMailer
- javascript - 无法将参数传递为对象的属性名称
- swift - 导航视图。黑屏
- r - 模拟 Heston 模型来评估 optinos
- python - ipython 不添加新行