【问题标题】:Removing the byte order mark on asp.net page删除 asp.net 页面上的字节顺序标记
【发布时间】:2023-03-10 11:50:01
【问题描述】:

我真的被困住了。我正在开发一个集成项目,我正在使用 ASP.NET 创建一个 html 片段。此片段将作为另一个站点的一部分包含在内。 html 片段是使用带有最少代码隐藏文件的简单 ASP.NET 页面创建的。

包含此 html 片段的站点正在运行 PHP。那里的开发人员抱怨我的代码将字节顺序标记作为 html 片段的一部分发送,这让他的生活变得困难。

我正在使用 Visual Studio 2010 进行开发。我已将相关的 aspx 和 aspx.cs 文件保存为没有签名的 UTF-8。但是,这似乎没有什么不同,现在我几乎没有想法了。该站点的其余部分设置为使用 UTF-8 作为标准(在 web.config 中定义)。

我应该在哪里更改我的 aspx 文件的 BOM 行为?

【问题讨论】:

  • 你没有说 html 片段是如何被保存并传输到 php 站点的。如果您在代码中创建这些片段,则保存 aspx 文件的方式与此无关。
  • 我的片段保存在 aspx 文件中并作为普通 html 提供,因此任何人都可以从浏览器访问它(但它不是有效的 html)。 php 站点在后端导入此内容并将片段注入到它自己的渲染输出流中。虽然我没有做导入工作,但我很确定这只是对我的服务器的正常 HTTP 调用。

标签: asp.net visual-studio-2010 character-encoding byte-order-mark


【解决方案1】:

如果您将文件保存在 Visual Studio 中,我相信它会继续添加 BOM。您需要使用其他编辑器删除标记,例如 NotePad++。

实际上,在 Visual Studio 的高级另存为对话框中,还有一个选项可以不带签名地保存 UTF-8。你试过吗?

已在this question确认。

【讨论】:

  • 正如我所提到的,我在 Visual Studio 2010 中保存为没有签名的 UTF-8。我正在使用高级保存选项来执行此操作。
  • 我注意到 notepad++ 无法识别来自 Visual Studio 的编码,如果您使用差异编辑器会发生什么情况?此外,您是如何提供文件的,您需要更改片段和提供它的任何文件,例如 ASPX。
  • 实际上我注意到,一旦将文件保存为没有签名的 UTF-8,Visual Studio 2010 或 Notepad++ 似乎都无法将文件识别为 ANSI 以外的任何文件。我在想这是一个错误? ASPX 文件可直接从 Web 服务器访问。文件背后的代码也保存为没有签名的 UTF-8。
  • 认为它可能是,如果我在 notepad++ 中保存没有 BOM 的文件,然后在 VS(没有 sig)中再次保存它,那么它可以工作。如果我在VS中先不保存BOM,则notepad++无法识别编码。
【解决方案2】:

您也可以使用普通的旧记事本以不同的编码进行保存。

另存为...编码下拉菜单。

【讨论】:

  • 我很确定我已将 Visual Studio 2010 配置为正确地将文件另存为 UTF-8 而无需签名。
猜你喜欢
  • 2015-01-01
  • 2011-04-21
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 2014-12-04
  • 2010-11-07
  • 1970-01-01
相关资源
最近更新 更多