当被 " 包围时,为什么 HTML 中的字体不呈现

Why isn't font rendered in HTML when surronded by "

我有一些 HTML 存储在数据库中,我正在从中生成一个静态 HTML 文件。然而,当我在浏览器中打开文件时,字体并没有像我预期的那样呈现。

我已经找到问题所在,我发现这是因为 & quot;

<p><span style="font-family: &quot;Roboto Regular&quot;;">Some text</span></p>

现在,如果我将 & quot; 替换为 double quotes,它就可以正常工作。

这也是通过C#生成的。解决此问题的最佳方法是什么? 我应该只使用 Replace function 将它们转换为引号,还是有一个库可以用来更有效地完成它?还是修复起来更简单。

感谢您的想法。

HTML 按原样输出,直到到达浏览器才被解析。这是一项安全措施,可确保浏览器中不会出现恶意代码 运行。我会建议您使用您建议的 Replace 功能。如果您想将安全性提高到一个新的水平,我建议您对 HTML 标记的左括号和右括号进行编码,并将其包含在 Replace 方法中。

你可以使用System.Web.HttpUtility.HtmlDecode(和Encode)来处理这种事情。

但是您应该问自己为什么您的字体字符串包含 HTML 个编码字符。