【问题标题】:HTML Issue, strange characters replacing HREF quotesHTML 问题,替换 HREF 引号的奇怪字符
【发布时间】:2019-11-08 08:54:57
【问题描述】:

我是 HTML 编码的新手。我这学期要上一门介绍性的网页设计课程,但我的 HREF 部分遇到了困难。我有一个目录页面,其中引用了我整个学期的所有项目。

这包括指向我的项目的直接链接,我应该能够在其中嵌入我的 index.html 文件以及指向我的新项目的链接。但是,每当我尝试使用链接到我的新项目的引号更新 HREF 段时,它会在引号所在的位置吐出奇怪的字符。

——下面显示的错误示例。

**The requested URL /“http://userid.myweb.usf.edu/project1/index.html“ was not found on this server.**


<li>This link goes to <a href=“http://userid.myweb.usf.edu/project1/index.html“>Project1</a></li>

我看到很多引用它是一个 UNICODE8 问题,但我不知道这意味着什么。如果有人可以提供帮助,我将不胜感激,因为我的教授不是最擅长回复我们的。

【问题讨论】:

  • 您需要提供minimal and reproducible example 您的问题,以便我们为您提供帮助。相应地编辑您的问题。下次发帖前,请阅读 stackoverflow 上的 how to ask 指南。
  • 你用什么软件来写HTML?
  • 我在 Mac 上使用 TextEdit
  • 您需要 var dump 或 console.log 用于修改链接 href 属性的变量。如果使用 chrome,请确保启用开发工具并硬刷新页面。
  • @btk666 — TextEdit 是一个文字处理器,而不是一个文本编辑器(名称没有帮助)。这可能是您的问题的原因。获取文本编辑器。 VS Code 是免费且流行的。

标签: html unicode href


【解决方案1】:

您的&lt;a&gt; 标记使用 引号字符(Unicode 代码点U+201C LEFT DOUBLE QUOTATION MARK)。 HTML 需要 " 引号字符(代码点 U+0022 QUOTATION MARK)。

<li>This link goes to <a href="http://userid.myweb.usf.edu/project1/index.html">Project1</a></li>

当您在键盘上键入 " 或从其他编辑器中复制/粘贴文本时,某些编辑器,尤其是专为编辑文档而非 HTML 而设计的文字处理器,将使用 而不是 "应用程序,所以要小心。使用专门为编辑 HTML 而设计的文本编辑器,或者至少是普通的文本编辑器,例如 NotePad/NodePad++,它不会重新解释输入的字符。


以下是“ 含义的细分:

您在 HTML 中输入的 Unicode (U+201C) 字符以 UTF-8 编码为字节 E2 80 9C

当在 Windows-1252 字符集(西方国家大多数 Windows 系统使用的默认字符集)中解释这些相同的字节时,字节 E2 是 Unicode 代码点 U+00E2 (â),字节 80 是代码点 U+20AC (),字节 9C 是代码点 U+0153 (œ)。

以 UTF-8 编码时,代码点 U+00E2 是字节 C3 A2,代码点 U+20AC 是字节 E2 82 AC,代码点 U+0153 是字节 C5 93

在 Windows-1252 中,字符 “ 是字节 C3 A2 E2 82 AC C5 93

看起来很眼熟?

您将 HTML 文件保存为的字符集与您的 Web 浏览器将 HTML 解释为的字符集不匹配。您的 HTML 被保存为 UTF-8,但被解码为 Unicode,被错误解释为 Windows-1252 而不是 UTF-8,重新编码为 UTF-8,然后显示为 Windows-1252。

如果您通过 HTTP 提供 HTML 文件,请确保 HTTP 服务器在 Content-Type HTTP 标头中报告正确的 charset=UTF-8 属性。

您还可以(并且应该)将&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; 标签(如果使用 HTML4)或&lt;meta charset="UTF-8"&gt; 标签(如果使用 HTML5)添加到您的 HTML 本身(通过 HTTP 提供服务时,Web 浏览器需要提供实际的 @ 987654349@ HTTP 标头优先级更高)。

确保报告的charset 在所有情况下都与您将 HTML 文件保存为的实际字符集相匹配。

【讨论】:

  • 非常感谢。这很奏效,而且对错误的解释和字符所代表的细节只是加倍努力。再次非常感谢您花时间为我分解这一切。
猜你喜欢
  • 1970-01-01
  • 2022-08-08
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
  • 2011-06-03
相关资源
最近更新 更多