我有以下标记:
<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 范围之外的字符,则在某些浏览器配置中,该文档将呈现为乱码。页面的字符编码必须在文档或传输协议(protocol)中声明 和一个空白页
在 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 字符集的页面?
最佳答案
可能有一些事情需要检查。您的网页中是否直接或间接加载了 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,看看是否会改变行为。
关于ASP.NET 将字符编码更改为 windows-1252,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12436110/