C#字符串4096限制?
最近我遇到了一个非常奇怪的C#字符串问题。我试着到处找,但找不到解决办法。如果这个问题太简单,请耐心听我说,因为我对C#很陌生 我使用了一个c#string变量来保存webbrowser中的html文本C#字符串4096限制?,c#,string,C#,String,最近我遇到了一个非常奇怪的C#字符串问题。我试着到处找,但找不到解决办法。如果这个问题太简单,请耐心听我说,因为我对C#很陌生 我使用了一个c#string变量来保存webbrowser中的html文本 string webresult = webBrowser1.DocumentText; 不知何故,它只保存html文本的前4096个字节。 我使用: 控制台的输出是4096 但如果我将其转储到一个文件中,html文件的所有其余部分都将正常输出 FileStream fileStream =
string webresult = webBrowser1.DocumentText;
不知何故,它只保存html文本的前4096个字节。
我使用:
控制台的输出是4096
但如果我将其转储到一个文件中,html文件的所有其余部分都将正常输出
FileStream fileStream = new FileStream(@"web.html", FileMode.OpenOrCreate, FileAccess.Write);
try
{
// read from file or write to file
StreamWriter m_streamWriter = new StreamWriter(fileStream);
m_streamWriter.WriteLine("{0}", str);
m_streamWriter.Flush();
}
finally
{
fileStream.Close();
}
有人能帮我解决这个问题吗?谢谢这听起来像是当你收到文档文本时,页面还没有完全加载。我认为WebBrowser在加载完成时会抛出一个事件(
DocumentCompleted
)。您应该在该事件的处理程序中进行文本转储。我认为4096个字符的限制与http调用有关,因此我将对此进行进一步研究。这不是C或.NET字符串长度的限制。什么变化?它被转储到何处或如何读取。web.html的字节大小是多少?(如果这是专门关于WebBrowserControl.DocumentText的,请将其标记为这样)。为什么文本中的变量称为“webresult”,而代码段中的变量称为“str”?显然,这需要一个更好的代码片段。web.html大约是900k。变量在代码段中称为str,因为它位于另一个函数中。谢谢,已经完成了。私有无效webBrowser1_DocumentCompleted(对象发送者,WebBrowserDocumentCompletedEventArgs e){System.Windows.Forms.HtmlDocument Document=webBrowser1.Document;字符串webresult=webBrowser1.DocumentText;Console.Out.WriteLine(webresult.Length);
FileStream fileStream = new FileStream(@"web.html", FileMode.OpenOrCreate, FileAccess.Write);
try
{
// read from file or write to file
StreamWriter m_streamWriter = new StreamWriter(fileStream);
m_streamWriter.WriteLine("{0}", str);
m_streamWriter.Flush();
}
finally
{
fileStream.Close();
}