为什么我的网站上像撇号和连字符这样的符号会被替换成黑色钻石?

39

我制作的一个网站出现了一些问题...在其中一页上,无论何处都有撇号 (')或短横线(-),这些符号会被一个带有黑色问号中心的奇怪黑色菱形符号所替换。

这就是我的意思:
screen

似乎在整个网站中,这种情况都会发生,只要出现这些符号。我以前从未见过这样的情况,有人能解释一下吗?

对如何解决它的建议也将不胜感激。

请查看http://test.rfinvestments.co.za/index.php?c=team,以清楚地查看问题。


你用哪种编码编写了网站?浏览器看到的是哪种编码?实际代码是什么?这里提供的信息太少,无法回答这个问题。截图的URL返回404错误。 - Konrad Rudolph
7个回答

48

这是一个编码问题。你需要通过 meta 标签在 HTML head 中设置正确的编码:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

将 "ISO-8859-1" 替换为您所使用的编码 (例如 'UTF-8')。你必须找出 HTML 文件的编码方式。如果你使用 Unix 系统,只需输入 file file.html 命令,即可显示编码方式。如果无法实现此操作,您应该能够在某处找到编辑器生成的编码方式。


没注意看它。它们可能是ASCII码...你能告诉我如何设置吗? - Ortund
@Logan Young,当你知道你的编辑器产生哪种类型的编码后,你只需要在我上面发布的meta标签中设置该编码即可。你使用什么编辑器? - joni
@Logan,我下载了你的网站,但是encafile无法识别编码,这有点奇怪。请问你使用哪个编辑器? - joni
应该可以从记事本中保存为ISO-8859或UTF-8格式。尝试一下并在元标记中更改编码。 - joni
可以肯定的是,文件中不仅仅包含ASCII字符,否则你就不会遇到这个问题了。你是在记事本中编写这段内容的,还是从Word等其他软件中粘贴过来的? - Gareth
如果您使用的是Unix系统,只需键入“file file.html”即可。如果您使用的是Mac OS X,则需要使用“file -I file.html”。 - Paul D. Waite

6

在将文本粘贴到HTML文档之前,您需要将其更改为“纯文本”。这似乎是我以前从MS Word直接粘贴时遇到的错误。

MS Word和其他富文本编辑器经常会将隐藏或无效字符放入您的代码中。尝试使用&mdash;表示破折号,或&rsquo;表示撇号(等等),以消除对字符编码的依赖。


5

我在我的asp.net网站上遇到了相同的问题。我通过此链接解决了这个问题。

我只需将'替换为&rsquo;,就像下面这样,我的网站在浏览器中显示撇号而没有像问题中提到的那样出现矩形框。

Original text in html page
Click the Edit button to change a field's label, width and type-ahead options

Replace text in html page
Click the Edit button to change a field&rsquo;s label, width and type-ahead options

2
如果您在记事本中编辑HTML,应使用“另存为”并更改对话框底部的默认“编码:”选择为UTF-8。您还应包括 -

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

这明确地设置了正确的字符集并通知浏览器。

2

查看您的实际HTML代码,并检查奇怪的符号是否源自其中。当我在记事本中编码一半后开始在Notepad++中编码时,这个问题出现了。我觉得我使用的旧版本记事本可能使用了与Notepad++ UTF-8编码不同的编码方式。将代码从记事本转移到Notepad++后,撇号被奇怪的符号替换了,因此我只需从Notepad++代码中删除这些符号即可。


1
复制粘贴跨编辑器可能会导致此问题。@Leonid 你的答案帮助我朝着正确的方向看齐。 - ARK
这是我今天遇到的问题,' vs ’。它们看起来相同,但实际上不同。 - Ack

1
当我从Word文档复制一个带有撇号的文本到我的HTML代码中时,遇到了同样的问题。
为了解决这个问题,我只是在我的HTML中删除了那个特定的单词,直接键入它,包括撇号。这个操作使原始的复制和粘贴行为失效,并正确地显示了新键入的撇号。

0
我真的不理解这类问题的原因。我在Chromium浏览器中运行的HTML页面作为本地文件显示得很完美,但是一旦我将其上传到我的网站上,就会出现错误。
更奇怪的是,使用Vivaldi浏览器时,无论是从本地还是远程文件显示,都能完美显示。
这是Chromium阅读字符集的方式导致的吗?但为什么只有远程文件会出现这种情况?
我通过在简单文本编辑器中重新输入文本并确保使用的单引号是我想要的那个来解决了这个问题。

欢迎来到stackoverflow。我们是一个问答网站,而不是讨论论坛。如果您有更多问题,请发布一个新的问题帖子并链接到现有的帖子。 - Simon.S.A.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接