【问题标题】:The character encoding of the plain text document was not declared - mootool script未声明纯文本文档的字符编码 - mootool 脚本
【发布时间】:2014-08-27 13:46:24
【问题描述】:

我刚刚注意到,当我在 FireFox 浏览器上查看我的 mootool.js 脚本时,会弹出一个警告消息。

警告信息是

未声明纯文本文档的字符编码。 该文档将在某些浏览器中呈现乱码 如果文档包含来自外部的字符,则配置 US-ASCII 范围。文件的字符编码需要是 在传输协议或文件中声明需要使用字节顺序 标记为编码签名。

这是否意味着我必须添加字符集或其他内容?但它是一个脚本!!

有解决办法吗?

【问题讨论】:

  • 我看不出它是如何连接到 MooTools...
  • 当我在 ubuntu 18.04 上使用 firefox 61.0a1 (2018-05-03) (64-bit) 尝试进入 itunesconnect.apple.com 管理我的 iOS 应用程序时,ff 上会出现同样的错误消息

标签: firefox encoding


【解决方案1】:

在您的 HTML 中,提供编码是一种很好的做法,例如使用以下元数据:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

但是您看到的警告可能由多个文件之一触发。它可能不是您的 HTML 文档。它可能是 javascript 文件或 css 文件中的内容。如果您的页面由多个包含在一起的 php 文件组成,则可能只有其中一个文件。

我认为这个错误与 mootools 无关。您会在 Firefox 控制台窗口中看到此消息。不是 mootools 脚本。

也许您只需要使用可让您指定正确字符编码的代码编辑器重新保存您的 html 页面。

【讨论】:

    【解决方案2】:

    FireFox 报告说响应甚至没有在标头中指定字符编码,例如。 Content-Type: text/html; charset=utf-8 而不仅仅是 Content-Type: text/plain;

    您使用的是什么网络服务器?您确定您请求的不是响应不佳的不存在页面 (404)?

    【讨论】:

    • 可能是使用的服务器正在用空 html 替换您的 html,在查看页面源代码时,您不会在该页面中找到任何内容,除了服务器正在侦听端口,但实际上没有呈现任何html.
    【解决方案3】:

    检查您的 URL 协议。

    如果您托管加密页面 (https) 并在 Firefox 中将其作为纯文本 (http) 打开,您也会看到此错误。

    【讨论】:

    • 错了,这是编码错误,不是安全错误。但是您的服务器可能会在 HTTP 标头中指定一个默认字符集,所以这可能是混淆的根源?
    【解决方案4】:

    对于 HTML 5:

    只需添加到您的&lt;head&gt;

     <meta charset="UTF-8"> 
    

    【讨论】:

      【解决方案5】:

      如果您使用的是 ASP.NET Core MVC 项目。如果您的 Views 文件夹中有正确的 cshtml 文件,则可以显示此错误消息,但控制器中缺少该操作。

      将缺少的动作添加到控制器将修复它。

      【讨论】:

        【解决方案6】:

        我通过在相对路径的开头添加 slash 来解决此问题

        【讨论】:

          【解决方案7】:

          ASP MVC 中,这是控制器中的一个方法,由于 if 语句错误而将 null 返回到 View。

          if (condition)
          {
              return null;
          }
          

          条件已修复,我返回视图,问题已修复。没有任何编码,但我不知道为什么这是我的错误。

          return View(result); // result is View's model
          

          【讨论】:

            【解决方案8】:

            我在使用 Spring Boot(在 Mozilla 中)时遇到了这个错误,

            因为我只是通过将一些实体从数据库直接返回到浏览器(作为 JSON)来测试一些基本的控制器 -> 服务 -> 存储库通信。

            我忘记将数据放入数据库,所以我的方法没有返回任何内容......我收到了这个错误。

            现在我将一些数据放入我的数据库中,它工作正常(错误已删除)。 :D

            【讨论】:

            • 在这种情况下它应该抛出一些错误信息。它不应该给出这个错误。
            【解决方案9】:

            我在 ASP.NET Core 中遇到了这个问题。就我而言,这是由于缺少 appsettings.{Environment}.json 文件造成的。

            我最近将环境更改为Production,但没有appsettings.Production.json 文件。丢失的文件导致 500 服务器错误,从而导致字符编码浏览器消息。

            【讨论】:

              【解决方案10】:

              我在 vs 代码中使用实时服务器时遇到此错误。

              这个错误可能是因为"proxyUri" 的默认路径是"null" 在活动服务器文件的settings.json 中。

              解决方案是将"false" 设置为"liveServer.settings.proxy""enable" 键的值

              【讨论】:

                【解决方案11】:

                如果有人在使用 SQL 并且他们在那里有元标记,但仍然显示错误,这是因为您从 .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;"
                

                【讨论】:

                  【解决方案12】:

                  当我移动到表格中的下一页然后单击表格上的按钮时遇到了这个问题......一个简单的解决方法正在调用

                   $(function () {
                        $('#tableid').DataTable();
                   });
                  

                  inside document.ready not outside

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2019-04-14
                    • 2015-12-26
                    • 2015-12-05
                    • 2019-12-12
                    • 2012-11-09
                    相关资源
                    最近更新 更多