如何从byte []数组转换为html?

Win*_*Guy 1 html c# asp.net post

我正在使用a NameValueCollection发布到网站.转换为字符串时的响应数组包含" \r\n".我需要纯HTML,所以我可以使用字符串来显示页面上的内容.这是代码:

 byte[] responseArray = myWebClient.UploadValues(SubmitURL, myNameValueCollection);
 string s = Encoding.ASCII.GetString(responseArray);
Run Code Online (Sandbox Code Playgroud)

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\"
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 5

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

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

byte[] responseArray = myWebClient.UploadValues(SubmitURL, myNameValueCollection);
string s = myWebClient.Encoding.GetString(responseArray);
Run Code Online (Sandbox Code Playgroud)

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