簡體   English   中英

Razor 試圖顯示帶重音的文本

[英]Razor trying to show text with accents

我正在嘗試在 html 標簽之間顯示一些文本,我正在使用 @HTML.Raw 方法來完成此操作,代碼片段如下所示:

<!-- SEO -->
<title>@Html.Raw(Model.Title)</title>
<meta name="Description" content="@Html.Raw(Model.Description)">
<meta name="KEYWORDS" content="@Html.Raw(Model.Keywords)">
<!-- END SEO -->

Description: @Html.Raw(Model.Description)
Keywords: @Html.Raw(Model.Keywords)

但是代碼執行后,顯示如下:

<!-- SEO -->
<title>FÚTBOL - El portal de los hinchas del fútbol</title>
<meta name="Description" content="F&#218;TBOL - El portal de los hinchas del f&#250;tbol">
<meta name="KEYWORDS" content="F&#250;tbol,hinchas">
<!-- END SEO -->
Description: FÚTBOL - El portal de los hinchas del fútbol
Keywords: Fútbol, hinchas

當轉義字符串在 " 字符之間時發生了一些事情。

有誰知道為什么會這樣?

編輯

變量的內容是這樣的:

Title: FÚTBOL - El portal de los hinchas del fútbol
Description: FÚTBOL - El portal de los hinchas del fútbol
Keywords: Fútbol, hinchas

我的 _Layout 中的字符集和文檔類型是:

<!DOCTYPE html>
<html lang="es" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#">
<head>     
  <meta charset="utf-8" />

問題不在於字母的情況,它可以顯示 Ú 或 ú。 我不明白的是為什么它在一種情況下而不是在另一種情況下逃避這封信,

由於&x250; 是“ú”而 218 是“Ú”有什么問題? 您只是看到了一些使用 HTML 實體的情況,而在其他情況下則沒有。

如果您使用合適的編碼提供輸出,最終結果將是相同的 - 實體將是執行取消編碼的客戶端。

我的建議是在您想要強制使用原始字符串時使用 @Html.Raw("your string") 。

嘗試使用HttpUtility.HtmlDecode("Your string with special characters")

例如:

Description: @HttpUtility.HtmlDecode(Html.Raw(Model.Description))
Keywords: @HttpUtility.HtmlDecode(Html.Raw(Model.Keywords))

致謝: @Hakan Fıstık

帖子: ASP MVC Razor 對輸入占位符中的特殊字符進行編碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM