我刚注意到当我在FireFox浏览器上查看我的mootool.js脚本时会弹出一条警告消息。
警告消息为“未声明纯文本文档的字符编码。如果文档包含US-ASCII范围之外的字符,则文档将在某些浏览器配置中使用乱码文本呈现。字符编码该文件需要在传输协议中声明,或者文件需要使用字节顺序标记作为编码签名。
这是否意味着我必须添加Charset或其他什么?但它是一个剧本!!
有解决方法吗?
答案 0 :(得分:22)
在你的HTML中提供编码就像使用以下这样的元素一样,这是一个很好的实践:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
但您看到的警告可能会被多个文件中的一个触发。它可能不是您的HTML文档。它可能是javascript文件或css文件中的内容。如果您的页面由多个包含在一起的PHP文件组成,则它们可能只是其中一个文件。
我不认为这个错误与mootools有任何关系。你在firefox控制台窗口看到这条消息。不是mootools剧本。
也许您只需要使用代码编辑器重新保存html页面,以便指定正确的字符编码。
答案 1 :(得分:12)
检查您的网址协议。
如果您托管加密页面(https)并在Firefox中将其作为纯文本(http)打开,您也会看到此错误。
答案 2 :(得分:8)
FireFox报告说响应甚至没有指定标题中的字符编码,例如。 Content-Type: text/html; charset=utf-8
而不只是Content-Type: text/plain;
。
您使用的是哪种Web服务器?您确定没有请求不存在响应不存在的不存在的页面(404)吗?
答案 3 :(得分:4)
如果您正在使用 ASP.NET Core MVC 项目。当您在cshtml
文件夹中有正确的Views
文件时,会显示此错误消息,但是控制器中缺少该操作。
将丢失的动作添加到控制器中即可对其进行修复。
答案 4 :(得分:3)
只需添加到您的<head>
<meta charset="UTF-8">
答案 5 :(得分:3)
我通过在相对路径的开头添加slash
来解决此问题
答案 6 :(得分:1)
我使用 Spring Boot (在Mozilla中)
遇到了此错误,因为我只是通过将一些实体从数据库直接返回到浏览器(如JSON)来测试一些基本的控制器->服务->存储库通信。
我忘记将数据放入数据库中,所以我的方法没有返回任何信息……而我收到了此错误。
现在,我在数据库中放入了一些数据,它工作正常(错误已消除)。 :D
答案 7 :(得分:1)
在我的 ASP MVC 中,这是控制器中的一种方法,由于错误的null
语句而将if
返回到View。
if (condition)
{
return null;
}
状态已修复,我返回了View,问题已修复。编码没有任何帮助,但我不知道为什么这是我的错误。
return View(result); // result is View's model
答案 8 :(得分:1)
我在 ASP.NET Core 中遇到过这个问题。就我而言,它是由丢失的 appsettings.{Environment}.json
文件引起的。
我最近将环境更改为 Production
,但没有 appsettings.Production.json
文件。丢失的文件导致 500 服务器错误,从而导致字符编码浏览器消息。
答案 9 :(得分:0)
如果有人在使用SQL,并且那里有meta标记,但仍然显示错误,则发生这种情况是由于您从.net到SQL的连接。
在您的appsettings.json中,将连接字符串更新为具有Persist Security Info=True
。因此,您的连接字符串应如下所示:
"DefaultConnection": "Server=[[server]];Initial Catalog=[[db]];Persist Security Info=True;User ID=[[user]];Password=[[pass]];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
答案 10 :(得分:0)
我在移动到表格中的下一页然后单击表格上的按钮时遇到了这个问题...一个简单的解决方法是调用
$(function () {
$('#tableid').DataTable();
});
在文档里面。准备好不在外面