确定html字符串的内容长度

时间:2010-11-03 01:37:07

标签: asp.net html http-headers httpresponse

我通过将数据作为HTML表格字符串发送并设置内容标题来将HTML表格导出为ex​​cel:

Dim html as String = "<table><tr><td>example<td></tr></table>"

context.Response.Clear()
context.Response.AddHeader("Content-Disposition", "attachment; filename=" & "exceldata-" & Now.ToString("yyyyMMddHHmmss") & ".xls")
'context.Response.AddHeader("Content-Length", ????)
context.Response.ContentType = "application/octet-stream"
context.Response.Write(response)
context.Response.End()

是否有一种基于html字符串大小设置内容长度的简单方法?或者我应该把它留空......最好是理想地拥有内容长度......

我使用asp.net中的GenericHandler

返回此内容

3 个答案:

答案 0 :(得分:5)

替换为您选择的编码,可能是UTF8。抱歉C#:

ASCIIEncoding encoding = new ASCIIEncoding();
byte[] bytes = encoding.GetBytes(html);
int length = bytes.Length;

来源:http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.contentlength.aspx

答案 1 :(得分:1)

这似乎太容易了,但它不仅仅等于html.Length吗?

答案 2 :(得分:1)

我没有使用过ASP.NET,但我猜Long()方法以字符形式返回字符串的长度,而不是字节,因此如果您的服务器使用UTF-8或Unicode进行服务,它将无法工作页面。

如另一个答案中所述,只需让服务器为您填写即可。如果你考虑一下,你不必在从ASP生成HTML页面时添加它,因为Web服务器会根据ASP模块的响应生成它。