【发布时间】:2019-01-25 16:45:56
【问题描述】:
我正在尝试将网页从我不理解的格式转换为 ascii,以便查找某些数据。我使用带有网页 url 的 webclient 检索数据,然后使用编码将数据从我认为的 unicode 转换为 ascii,但格式根本没有改变。以下是我的代码:
WebClient web = new WebClient();
string page = "https://www.myurl.com/";
Stream data = web.OpenRead(page);
StreamReader reader1 = new StreamReader(data);
string input = reader1.ReadToEnd();
Encoding unicode = Encoding.Unicode;
Encoding ascii = Encoding.ASCII;
string webpage = ascii.GetString(
Encoding.Convert(unicode, ascii, unicode.GetBytes(input))
);
以下是网页数据的样子,与输入数据相同,这表明我的转换无效。
\"sprited\":true,\"spriteCssClass\":\"sx_a11c08\",\"spriteMapCssClass\":\"sp_SN-oNOqlzVS\"},\"505789\":{\"sprited\":true,\"spriteCssClass\":\"sx_5219b1\",\"spriteMapCssClass\":\"sp_SN-oNOqlzVS\"},\"505782\":{\"sprited\":true,\"spriteCssClass\":\"sx_c0671f\",\"spriteMapCssClass\":\"sp_SN-oNOqlzVS\"},\"505794\":{\"sprited\":true,\"spriteCssClass\":\"sx_8cf344\",\"spriteMapCssClass\":\"sp_SN-oNOqlzVS\"},\"495429\":
有谁知道这是什么类型的数据以及如何将其转换为我可以理解的数据?当我在浏览器上显示网页的页面源时,这些奇怪的数据都没有出现。换句话说,我从 webclient 获得的数据看起来一点也不像浏览器上的页面源。
【问题讨论】:
-
这看起来像是带有反斜杠转义的部分 JSON。如果可能,您能否提供您尝试访问的实际 URL?
-
我不认为你有字符编码的问题,它不是字符如何表示为字节的问题。你的问题是,你期待 HTML 并且你得到了别的东西,看起来有点像 JSON。
-
如果用 UTF8 编码,ASCII 范围看起来是一样的。
-
我没有看到任何看起来像 unicode 的东西。你想改变什么?
-
我正在使用我不想显示的用户 ID 访问我的 Facebook 页面。它是facebook.com/my id。有些数据看起来确实像网络数据,但不是全部。
标签: c# encoding webclient non-ascii-characters