【问题标题】:strange characters on web page网页上的奇怪字符
【发布时间】:2010-07-14 22:53:15
【问题描述】:

我有一个涂鸦博客,但我遇到了一个奇怪的问题,显示奇怪的字符页面,如下所示:

alt text http://amrelgarhy.com/ScreenShots/error.jpg

当我打开我的控制面板管理页面时,该页面正在显示。当我尝试编辑我以前的一篇文章时,它也显示相同。我的问题是我不知道它背后的原因是什么。

我不确定如何解决这个问题。我所有的帖子都是英文的,我总是使用 Windows Live Writer 来发帖。

以前有人遇到过这样的问题吗?你能告诉我找出这个问题的原因,以及任何可能的解决方案吗?

【问题讨论】:

  • 应该在这里问:webapps.stackexchange.com
  • 可能是,我不确定,我在这里问,因为它可能与 graffiticms 代码文件有关,但没关系,如果更多人认为相同,我将从这里删除并在那里问.
  • 这看起来像是一些图像数据被解释为文本数据。您的页面是否包含图像,是否有可能以某种方式内联?不包含任何图像的页面也会出现这种情况吗?
  • 绝对是二进制文件。文件名和扩展名是什么?

标签: asp.net html blogs graffiticms


【解决方案1】:

看起来可能是编码不匹配。您是否在不理解 UTF 编码的工具中打开 UTF-8(或其他一些 Unicode)编码的文件,反之亦然?

【讨论】:

  • 在能够理解各种编码的编辑器中打开文件。 NotePad++ 就是其中之一(notepad-plus-plus.org)。甚至 Windows 的记事本也可以告诉您文件是否为 Unicode。如果您需要使用纯 ASCII 编辑器并且您看到 '' 作为前三个字节,那么您就有了一个 UTF-8 文件。 'þÿ' 或 'ÿþ' 表示 UTF-16 的风格。
  • 当我将页面保存为文件时,我在文件的第一行得到了这个: ��������`I�%&
  • 您可以访问源代码吗?如果将其保存到数据库中,则可能是输入未转换为兼容的编码。我的公司目前正在将我们的 SQL Server 数据库从以 CP1252 存储文本转换为 UTF-16。这并不漂亮——我们遇到了一些奇怪的数据转换错误。
  • 是的,我可以访问,所以我应该打开数据库并查看记录并检查是否保存得不好?
  • 是的。您使用的字体是否支持 Unicode?如果数据中有您的字体无法显示的代码点,您将看到乱码。如果您直接查看数据,请检查字符串中是否散布了二进制零 - 这是一个快速而肮脏的指示,表明您可能有 unicode 字符 (UTF-16)。但是,通常情况下,字符串值的开头不会有字节顺序标记,只有文件。
【解决方案2】:

尝试将其放在您的母版页中:

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

此外,请检查是否已创建虚拟目录。

【讨论】:

  • 做到了,但没有任何改变:(
【解决方案3】:

内容 MIME 类型似乎有问题。您看到的奇怪现象是因为服务器以二进制形式提供内容(我猜是application/octet-stream),即使它应该以文本/html 的形式提供它们。图片应以image/&lt;extension&gt; 的形式提供,例如image/png

您可以手动将 MIME 类型处理程序设置为某些文件类型。如果您使用的是 Apache,您可以在 .htaccess 文件中轻松地做到这一点,如下所示:

AddType text/html .html

如果您的内容不是 HTML,则 MIME 类型是不同的。如果您的网络服务器没有自动执行此操作,您可能应该自己添加处理程序。

所有 MIME 类型都可以从这里找到:http://www.iana.org/assignments/media-types/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多