通过web.config从页面输出中删除BOM

时间:2010-08-26 10:55:38

标签: asp.net unicode utf-8 web-config

目前我们的页面正在使用Unicode BOM输出。

我找到了一种方法,可以通过将以下内容添加到我的母版页OnInit来删除它。

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    Response.ContentEncoding = new System.Text.UTF8Encoding(false);
}

传递给false构造函数的UTF8Encoding会禁用BOM。

这很好用,但我更喜欢在web.config中设置它,而不是依赖它在任何给定页面的OnInit层次结构中。

globalization element具有responseEncoding属性,该属性采用有效结束编码的字符串表示形式。 e.g。

<globalization
    responseEncoding="utf-8"
    ... />

有没有办法将“ utf-8无BOM ”表示为一个字符串,可以在web.config中用作responseEncoding的值?

1 个答案:

答案 0 :(得分:1)

BOM或字节顺序标记有时非常烦人。 Visual Studio不会更改文件,除非您保存它(如汉斯所说)。

以下是您的问题的解决方案:如果您想使用其他编码保存文件,请选择另存为并在文件对话框中扩展保存按钮,然后选择&#34;使用编码保存&#34;。或者,如果您想要永久删除此设置,只需打开“文件”菜单并选择“高级保存选项”即可。你应该在没有签名的情况下选择&#34; UTF-8&#34; (这也回答了你的上一个问题:)。是和#34;没有签名的UTF-8&#34;与没有BOM的情况相同。