C# 解析UTF-8编码的网页

C# 解析UTF-8编码的网页,c#,encoding,utf-8,C#,Encoding,Utf 8,如果我从网站收到一些数据,我会得到以下字符串: Peter Tester   â‚‹   Max Mustermann 主页的元信息显示编码是UTF-8,我编写了一个小函数将UTF-8转换为Base64(Base64是默认C#项目的正确字符集还是?) 但此函数返回如下字符串: "S3lsZSBFZG11bmQgJm5ic3A7IMOi4oCa4oC5ICZuYnNwOyZuYnNwO0ppcmkgVmVzZWx5" 我相信你只是想: re

如果我从网站收到一些数据,我会得到以下字符串:

Peter Tester   â‚‹   Max Mustermann
主页的元信息显示编码是UTF-8,我编写了一个小函数将UTF-8转换为Base64(Base64是默认C#项目的正确字符集还是?)

但此函数返回如下字符串:

"S3lsZSBFZG11bmQgJm5ic3A7IMOi4oCa4oC5ICZuYnNwOyZuYnNwO0ppcmkgVmVzZWx5"

我相信你只是想:

return Encoding.UTF8.GetString(bytes);

我在VB中发现了一个具有相同问题的线程

C#中的相同函数很好用,在将“–#”替换为我可以使用的字符串之后:-)

谢谢你的帮助

Regex.Replace(input, "[^\u0000-\u007F]", " ")

Base64用于编码不可表示的数据,默认编码是默认编码,这在每个系统上有所不同,取决于计算机区域设置。如果您有字符串,则表示您已将输入流解析为UTF-16。可能原始文本无法恢复(如果您没有得到任何编码异常…),您也无法恢复它。您必须对输入字节流应用转换。顺便说一句,Base64与UTF8无关……当您从网站接收数据时,您接收的是字节。我从那里开始。如果这些字节是UTF-8编码的文本,请使用
Encoding.UTF8
对其进行解码。Base64在这里是不相关的。我接收了这个网站,并用HTMLAgilityPack“解析”它。解析页面后,我想过滤一些值。
Regex.Replace(input, "[^\u0000-\u007F]", " ")