为什么 Safari 将我的 TM 符号呈现为“¢”?

Why is Safari rendering my TM symbol as â„¢?

提问人:Kyle Vassella 提问时间:11/12/2022 最后编辑:Kyle Vassella 更新时间:11/12/2022 访问量:183

问:

我收到了一个 HTML 文件进行评估。第一行如下所示:

<h1>myCompanyName<sup>™</sup></h1>

其中呈现为

myCompany名称

.

当我在Chrome或Firefox中打开此文件时,商标符号可以正常显示。但是,在 Safari 中,它呈现如下:

myCompanyName公司名称)

.

为什么 Safari 将这个小“TM”解释为“¢”,我能做些什么来避免这种情况?

有趣的是,如果我将相同的代码粘贴到 Visual Studio Code Web 应用中并提供它,无论如何它都会在所有浏览器上正确呈现。只有当通过“使用浏览器打开”自行打开HTML文件时,它才会在Safari中搞砸。

html angular 浏览器 UTF-8 Safari

评论


答:

3赞 Mark Tolonen 11/12/2022 #1

编码声明不正确。解码为 Windows-1252 的 UTF-8 编码显示为 。â„¢

使用 Python 的证明:

>>> print('™'.encode('utf8').decode('windows-1252'))
â„¢

至少尝试:

<meta charset="utf-8"><h1>myCompanyName<sup>™</sup></h1>

评论

0赞 Kyle Vassella 11/12/2022
谢谢。当访问特定页面时,此 HTML 将通过异步 GET 请求拉入 Angular Web 应用程序。因此,在我们的 index.html 文件中,我们已经有一个 charset=“utf-8” 属性。我现在想知道 utf-8 是否会在事后拉入 html 时生效......也许这里的解决方案是确保将文件编码更改为 UTF-8?
1赞 Mark Tolonen 11/12/2022
@KyleVassella,如果您看到您的文件用 UTF8 编码的,只是解码不正确。在那个特定的页面上吗?â„¢meta charset