为什么我的搜索结果与我的页面编码不在同一个字符集中?

Why are my search results not in the same charset as my page encoding?

我正在为 html 页面使用 UTF-8 编码。

<head>
   <meta charset="utf-8">

在调试器控制台中,document.characterSet returns "UTF-8"。

在该页面上,我的元数据(关键字、描述、标题)具有有效的 UTF-8 字符:'®',即 UTF-8:'c2ae'

该字符在视图源代码和页面标题中正确显示。

但是 google 搜索结果和 bing 搜索结果将其显示为“î”。也就是说,在网络抓取期间,它似乎正在转换为显示两个字节的 ISO-8859-1 或 Western-1252:'c2' 和 'ae'。

如果我用 &#174; => (\u00ae) 替换字符,它会正确显示。

没有将我的元数据转换为 ISO-8859-1,是否有我应该使用的最佳实践?

查看页面元标记并确认它没有使用此:

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

对于HTML5Google推荐:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">

另请注意:

注:

<meta charset="">

另注: HTML 中保留了一些字符。 "Html Entities" HTML 中的这些保留字符必须用字符实体替换。 例如

&   ampersand   &amp;   &#38;

®   registered trademark    &reg;   &#174;

问题出在后端,从缓存中读取数据时,数据未正确转码为 UTF-8。所以,我觉得最好的做法是使用本机 UTF-8 BMP 字符,使用适当的页面编码,并且不需要使用 html 实体值。