2

我有以下标记:

    <head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>



    <asp:ContentPlaceHolder ID="TitleContent" runat="server" />
    </title>
    <asp:ContentPlaceHolder ID="HeaderContent" runat="server" />
    <link href="~/Content/Site.css" rel="stylesheet" type="text/css" />
    <link href="~/PublicPages/LogIn.css" rel="Stylesheet" type="text/css" />

    </head>
    <body>
    <form id="form1" runat="server">

    <div class="page">
        <div id="header">
    .....

而这个 web.config

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
     <configSections>


    </configSections>
    <system.web>
    <machineKey validation="SHA1" />
    <globalization
      fileEncoding="utf-8"
      requestEncoding="utf-8"
      responseEncoding="utf-8"
      culture="en-US"
      uiCulture="de-DE"
    />

在回发时,我在 Firefox 中收到此错误 HTML 文档的字符编码未声明。如果文档包含 US-ASCII 范围之外的字符,则文档将在某些浏览器配置中呈现乱码。页面的字符编码必须在文档中或者在传输协议中声明,并且是一个空白页面

检查 IE 中的源代码,我看到:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>

那么如何防止asp.net返回带有windows-1252字符集的页面呢?

4

1 回答 1

0

可能有几件事需要检查。您是否碰巧在您的网页中直接或间接加载了 JavaScript 资源?

如果您从磁盘加载的资源文件在其他 ASP.NET 页面上不是 UTF-8 编码的,那么它们可以呈现为其默认编码。检查是否有任何资源文件仍然可以为您的 JavaScript 文件使用 VS 编码 Windows 1252。将所有资源文件保存为 utf-8 类型应将设置更改为 utf-8。

为确保所有 ASP.NET 页面对每个嵌入式资源都有 utf-8 编码,您可以在每个 ASP.NET 页面中添加以下内容:

response.codepage = 65001
response.charset = "utf-8"

还使用“ firefox -safe-mode ”在没有任何插件的安全模式下启动 FireFox,看看是否会改变行为。

于 2012-09-17T22:12:50.260 回答