ASP.NET:Server.Execute() 中的 BOM

标签 asp.net byte-order-mark

我用它来写入响应流:

    using (var writer = new StringWriter())
    {
        context.Server.Execute(virtualpath, writer);
        string s = writer.ToString().Replace(...);
        context.Response.Write(s);
    }

但是我在响应中得到了字节顺序标记。我搞砸了编码吗?如何不退回 BOM?

编辑:抱歉鲁本斯,我的第一个例子不正确。

最佳答案

试试这个:

context.Server.Execute(virtualpath, context.Response.Output);

编辑:因此,请尝试强制编码:

MemoryStream ms = new MemoryStream();
StreamWriter writer = new StreamWriter(ms);
context.Server.Execute(virtualpath, writer);
context.Response.Write(Encoding.UTF8.GetString(ms.ToArray()).Replace(...));

关于ASP.NET:Server.Execute() 中的 BOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1745392/

相关文章:

html - Twig 之间渲染的隐形角色包括

c# - 从 File.ReadAllBytes (byte[]) 中删除字节顺序标记

asp.net-mvc-4 - 从 mvc razor 页面的页面内容中删除 

javascript - 如何使用 jQuery 验证插件在 keyup 上验证非表单元素中的输入

c# - 如何从文件夹中获取C#中的文件位置

c++ - 使用 ReadFile() 简单读取文件

asp.net - 从请求中获取所有发布数据

javascript - 如何在asp.net中显示 "yes"或 "no"消息框?

javascript - 长字符串在 Firefox 中被自动 chop ,而在谷歌浏览器中它完美地工作