【问题标题】:determine content-length of html string确定 html 字符串的内容长度
【发布时间】:2011-05-04 06:30:30
【问题描述】:

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

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 返回这个

【问题讨论】:

    标签: asp.net html http-headers httpresponse


    【解决方案1】:

    这似乎太简单了,但它不只是等于html.Length吗?

    【讨论】:

    • 我猜如果每个字符都是一个字节,那会有意义吗? (我希望这很容易:D)
    • 总是这样吗?
    • 约翰在下面的回答更好,那就去吧。
    【解决方案2】:

    替换为您选择的编码,可能是 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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-14
        • 2010-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-06
        • 1970-01-01
        相关资源
        最近更新 更多