2012-05-03 144 views
2

我試圖顯示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 

東西happend當轉義字符串是「字符之間

有誰知道爲什麼會出現這種情況

編輯

變量的內容是完全一樣的:

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是:

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

的問題是不是這樣的它的確可以顯示Ú或ú。我沒有不知道的是爲什麼它在一種情況下逃避信件而不在另一種情況下,

+0

什麼在你的'Model.Description'和你在'_Layout'視圖中使用了什麼'charset'? – balexandre

+0

是'Model.Description'是一個**用戶字符串**,還是一個帶有已知和可信html的清理字符串? (我更直接關注的是使用或不使用'.Raw') –

+0

@MarcGravell被消毒,可安全使用.Raw方法。 – dnlgmzddr

回答

1

既然&x250;是「ú」而218是「Ú」是什麼問題?你只是看到了一些使用HTML實體的情況,而不是其他情況。

假設您使用合適的編碼傳遞輸出,最終結果將是相同的 - 對於實體​​,它將作爲客戶端進行非編碼。

+0

我不明白你的答案:爲什麼在一個案例中@Html.Raw打印'ú',而在另一個案例中打印出'&x250;'? – themarcuz

+0

就像你可以看到它可以顯示小寫字母和大寫字母,但是我不明白這是爲什麼在一種情況下顯示'ú'在其他情況下它的顯示'ú'它最符合和顯示在兩種情況下都是相同的字符。 – dnlgmzddr

+0

@themarcuz:我懷疑差異是屬性vs文本節點被創建(而不是引號或不)。我的觀點是:瀏覽器上的最終用戶是否看到相同的內容並不重要。 – Richard

0

我的建議是使用@ Html.Raw(「你的字符串」),只要你想強制原始字符串。