C# 如何从字节[]数组转换为html?

C# 如何从字节[]数组转换为html?,c#,html,asp.net,post,C#,Html,Asp.net,Post,我正在使用NameValueCollection发布到网站。转换为字符串时,响应数组包含“\r\n”。我需要纯html,这样我就可以使用字符串在页面上显示内容。代码如下: byte[] responseArray = myWebClient.UploadValues(SubmitURL, myNameValueCollection); string s = Encoding.ASCII.GetString(responseArray); s包含如下内容: \r\n \r\n&l

我正在使用
NameValueCollection
发布到网站。转换为字符串时,响应数组包含“
\r\n
”。我需要纯html,这样我就可以使用字符串在页面上显示内容。代码如下:

 byte[] responseArray = myWebClient.UploadValues(SubmitURL, myNameValueCollection);
 string s = Encoding.ASCII.GetString(responseArray);
s包含如下内容:

   \r\n    \r\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\r\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n\r\n\r\n<head>\r\n<title>Transaction Code Search Results</title>\r\n<link href=\"searchreference.css\" rel=\"stylesheet\" type=\"text/css\" />\r\n\r\n</head>\r\n\r\n<body topmargin=\"10\" leftmargin=\"10\">\r\n<table border=\"0\" width=\"100%\">\r\n  <tr>\r\n    <td width=\"70\" rowspan=\"2\" align=\"left\"><img src=\"images/WFLogo_62.gif\" alt=\"WF logo\" width=\"62\" height=\"62\" /></td>\r\n    <td height=\"40\">&nbsp;</td>\r\n    <td rowspan=\"2\"><form method=\"post\" action=\"trancodesearch3.asp\">\r\n      <div align=\"right\">\r\n        <input type=\"submit\" name=\"Search again\"\r\n      value=\"Search again\" />\r\n      </div>\r\n    </form></td>\r\n  </tr>\r\n  <tr>\r\n    <td valign=\"bottom\"><h1>Transaction Code Search Results</h1></td>\r\n  </tr>\r\n</table>\r\n\r\n<hr size=\"1\" class=\"redline\" />\r\n\r\n<table width=\"100%\" border=\"0\" align=\"
left\" cellpadding=\"6\"

\r\n\r\n\r\n\r\n\r\n\r\n交易代码搜索结果\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n交易代码搜索结果\r\n\r\n\r\n\n\r\n\n\r\n\r\n\r\n/>\r\n\r\n您正在Visual Studio的调试器中查找
s
变量的值。这就是为什么您会看到所有这些
\r\n
符号。实际上,这些只是字符串中包含的新行,使用
Encoding.ASCII.GetString
方法将字节数组转换为字符串的代码是正确的

您可以采用的一个小调整是编码本身。您可以使用WebClient使用HTTP响应头计算的编码:

byte[] responseArray = myWebClient.UploadValues(SubmitURL, myNameValueCollection);
string s = myWebClient.Encoding.GetString(responseArray);

因此,例如,如果远程网站支持与ASCII不同的编码,这将考虑到这一点,并且在转换过程中不会丢失数据(例如,您知道希望获得一些重音字符的???符号)。

您正在Visual Studio的调试器中查找
s
变量的值。这就是为什么您会看到所有这些
\r\n
符号。实际上,这些只是字符串中包含的新行,使用
Encoding.ASCII.GetString
方法将字节数组转换为字符串的代码是正确的

您可以采用的一个小调整是编码本身。您可以使用WebClient使用HTTP响应头计算的编码:

byte[] responseArray = myWebClient.UploadValues(SubmitURL, myNameValueCollection);
string s = myWebClient.Encoding.GetString(responseArray);
因此,例如,如果远程网站支持与ASCII不同的编码,这将考虑到这一点,并且在转换过程中不会丢失数据(例如,您知道希望获得一些重音字符的???符号)。

您可以这样做

var htmlString = System.Text.Encoding.Default.GetString(response); // reponse is byte[]
你可以这样做

var htmlString = System.Text.Encoding.Default.GetString(response); // reponse is byte[]

不,它真的不包含那些斜杠。你只是在调试器中看到了这一点。请注意引号前的斜杠。不,它实际上不包含这些斜杠。你只是在调试器中看到了这一点。请注意引号前的斜杠。