当被 " 包围时,为什么 HTML 中的字体不呈现
Why isn't font rendered in HTML when surronded by "
我有一些 HTML 存储在数据库中,我正在从中生成一个静态 HTML 文件。然而,当我在浏览器中打开文件时,字体并没有像我预期的那样呈现。
我已经找到问题所在,我发现这是因为 & quot;
<p><span style="font-family: "Roboto Regular";">Some text</span></p>
现在,如果我将 & quot;
替换为 double quotes
,它就可以正常工作。
这也是通过C#生成的。解决此问题的最佳方法是什么?
我应该只使用 Replace function
将它们转换为引号,还是有一个库可以用来更有效地完成它?还是修复起来更简单。
感谢您的想法。
HTML 按原样输出,直到到达浏览器才被解析。这是一项安全措施,可确保浏览器中不会出现恶意代码 运行。我会建议您使用您建议的 Replace 功能。如果您想将安全性提高到一个新的水平,我建议您对 HTML 标记的左括号和右括号进行编码,并将其包含在 Replace 方法中。
你可以使用System.Web.HttpUtility.HtmlDecode
(和Encode
)来处理这种事情。
但是您应该问自己为什么您的字体字符串包含 HTML 个编码字符。
我有一些 HTML 存储在数据库中,我正在从中生成一个静态 HTML 文件。然而,当我在浏览器中打开文件时,字体并没有像我预期的那样呈现。
我已经找到问题所在,我发现这是因为 & quot;
<p><span style="font-family: "Roboto Regular";">Some text</span></p>
现在,如果我将 & quot;
替换为 double quotes
,它就可以正常工作。
这也是通过C#生成的。解决此问题的最佳方法是什么?
我应该只使用 Replace function
将它们转换为引号,还是有一个库可以用来更有效地完成它?还是修复起来更简单。
感谢您的想法。
HTML 按原样输出,直到到达浏览器才被解析。这是一项安全措施,可确保浏览器中不会出现恶意代码 运行。我会建议您使用您建议的 Replace 功能。如果您想将安全性提高到一个新的水平,我建议您对 HTML 标记的左括号和右括号进行编码,并将其包含在 Replace 方法中。
你可以使用System.Web.HttpUtility.HtmlDecode
(和Encode
)来处理这种事情。
但是您应该问自己为什么您的字体字符串包含 HTML 个编码字符。