重音字符问题

重音字符问题

我有很多网站是用 UTF-8 编码的。它们包含重音符号、带有波浪线的奇怪 n 以及各种有趣的东西。

当我尝试在任何文本编辑器中打开它们时,即使是将字符编码设置为 UTF-8 的 Notepad++,我也会看到一些奇怪的字符。

在我的浏览器中:

在此处输入图片描述

在文本编辑器中:

在此处输入图片描述

有人能解释一下这里发生了什么吗?

答案1

页面是使用实体引用(旧术语)或命名字符引用(HTML5 术语)编写的,它们是字符的特殊符号。在 UTF-8 编码的页面中,例如,您可以使用“ó”,但类似这样的引用ó也是有效的,并且页面作者/开发人员可能出于各种原因(例如,不知道如何输入“ó”)更喜欢这样做。很多时候,实体的使用只是旧做法的遗留,在浏览器广泛支持 UTF-8 之前,这些做法曾经是必需的(在 1990 年代)。

这种表示法ó使用起来完全安全,尽管它会使 HTML 源代码的可读性降低。例如,如果用户复制并粘贴文本,他会得到“ó”,因为它ó仅存在于 HTML 源代码中;浏览器的 HTML 解析器会在内部将其转换为“ó”。

然而,一些引用是不安全的。一般来说,HTML 4.01 中定义的实体是安全的。(其中一些可能指的是由于字体问题而无法始终正确呈现的字符,但此类问题的存在与实体与字符本身的使用无关。)还有一组更大的HTML5 中的命名字符引用,而旧版浏览器通常缺乏对这些扩展的支持。

例如,ō可能支持也可能不支持。如果支持,则显示为“ō”(带长音符号的 o);如果不支持(例如在 IE 9 及更早版本上),则按字面意思呈现。因此,使用字符本身或数字參考ō

答案2

HTML 用途关注实体表示外语中使用的字母和其他字符。查看一下,您就会发现该"ó"字符是"ó"

这是一篇关于浏览器中的 UTF-8 和字符编码的好文章:

一开始是 ASCII,一切都很简单。但效果并不好,因为没有人会用西里尔文或泰语书写。因此,字符编码激增,通过扩展 ASCII 可以表达的字符来解决这个问题。这个极其简化的字符编码历史版本向我们展示了现在有许多字符编码在流传。

字符编码告诉计算机如何将原始零和一解释为真实字符。它通常通过将数字与字符配对来实现这一点。

答案3

当我尝试在任何文本编辑器中打开它们时,我得到一些奇怪的字符

importación

他们是HTML 特殊实体代码

ó是“带有重音符号的小写“o””的特殊字符表示。

您可以查看HTML 特殊实体代码HTML 代码表


HTML 实体和/或 ISO Latin-1 代码可以像任何其他字母数字字符一样放置在源代码中,以产生无法使用普通键盘命令在 HTML 中生成的特殊字符和符号。

例如,要呈现杜塞尔多夫,HTML 源代码应为

Düsseldorf or Düsseldorf

来源HTML:特殊字符

相关内容