【问题标题】:Meta description with special characters in UmbracoUmbraco 中带有特殊字符的元描述
【发布时间】:2023-03-04 11:01:01
【问题描述】:

在 Umbraco 的 meta 和 alt 文本中使用特殊字符时遇到问题。

我正在使用 Meta 描述和 Alt 文本进行测试,如下所示:Test test æøå

它会生成这个输出:

<meta name="description" content="Test test &#230;&#248;&#229;">

<img src="#" alt="Test test &#230;&#248;&#229;" />

如果我在标题标签和普通内容中插入相同的文本,那么输出就完美了。

生成元和标题标签的代码如下所示:

<!DOCTYPE html>
<html lang="da">
<head>
  <meta charset="utf-8">
  <meta name="description" content="@Umbraco.Field("pageDescription")">
  <title>@Umbraco.Field("pageTitle")</title>
</head>

使用 Notepad++ 将文件保存为 utf-8。

如果我直接在 HTML 中插入 æøå,则显示 æøå 没有任何问题。

我也试过这个:

<p>@Umbraco.Field("pageDescription")</p>

然后它正确显示“æøå”。

有人知道我做错了什么吗?

提前致谢!

// 勒内

【问题讨论】:

    标签: special-characters meta-tags umbraco7


    【解决方案1】:

    看起来这是 Razor 的一个“功能”,它总是对属性进行 HTML 编码。见:Razor - @Html.Raw() still encoding &amp; in meta tag attributes

    因此,要解决此问题,您可以执行以下操作:

    <meta name="description" @Html.Raw("content=\""+ @Umbraco.Field("pageDescription") + "\"") />
    <title>@{ var title = new HtmlString(Umbraco.Field("pageTitle").ToString());}@title</title>
    

    它不漂亮,但它有效。

    【讨论】:

    • 嗨塞巴斯蒂安。您的解决方案输出此 在内容前带有双引号。如果我将其删除,则它不起作用。有什么建议吗?也许这个问题不是问题,看这个链接:our.umbraco.org/forum/umbraco-7/using-umbraco-7/…你同意吗?
    • @VanDerPrygel 啊,我明白了,我现在用一个更丑陋的解决方案对其进行了更新,但它确实有效。我想它实际上根本不重要是正确的,但现在你知道该怎么做了。
    • 你不能只使用@Html.Raw(Model.Content.GetPropertyValue("pageDescription")) 而不是这个丑陋的@Umbraco.Field concat 吗?
    • 当然你可以用Model.Content.GetPropertyValue代替Umbraco.Field,但这不是重点。
    猜你喜欢
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-05-25
    • 1970-01-01
    • 2023-03-14
    • 2012-10-06
    • 2018-11-14
    相关资源
    最近更新 更多