Razor tratando de mostrar texto con acentos

Estoy tratando de mostrar algo de texto entre las etiquetas html, estoy usando el método @HTML.Raw para lograr esto, el fragmento de código se ve así:

<!-- 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)

Pero después de ejecutar el código, se muestra así:

<!-- 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

Algo sucedió cuando la cadena escapada está entre el carácter ".

¿Alguien sabe por qué está pasando esto?

EDITAR

El contenido de las variables es exactamente así:

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

El juego de caracteres y el tipo de documento en mi _Layout es:

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

El problema no es el caso de las letras esta bien que muestre Ú o ú. Lo que no entiendo es por qué se escapa la letra en un caso y en el otro no,

preguntado el 03 de mayo de 12 a las 15:05

que hay en tu Model.Description y lo charset estás usando en tu _Layout ¿vista? -

Is Model.Description a cadena de usuario, o una cadena desinfectada con html conocido y confiable? (mi preocupación más inmediata sería usar o no usar. .Raw apropiadamente) -

@MarcGravell está desinfectado, es seguro usar el método .Raw. -

@balexandre Actualicé la pregunta para mostrar la información que solicita. Gracias. -

3 Respuestas

Como &x250; es "ú" y 218 es "Ú" ¿cuál es el problema? Solo está viendo algunos casos de uso de una entidad HTML y no en otros casos.

Siempre que entregue la salida con una codificación adecuada, el resultado final será el mismo: con las entidades, será el cliente el que descodifique.

contestado el 03 de mayo de 12 a las 15:05

No entiendo su respuesta: ¿por qué en un caso el @ Html.Raw imprime un ú y en otro caso imprimir un &x250;? - marcuz

Como puede ver, está bien que muestre las letras minúsculas y mayúsculas, pero lo que no entiendo es por qué en un caso se muestra ú y en otro caso su show &#250; debe ser consistente y mostrar los mismos caracteres en ambos casos. - dnlgmzddr

@themarcuz: sospecho que la diferencia es el atributo frente a los nodos de texto que se crean (en lugar de entre comillas o no). Mi punto: no importa si el usuario final en un navegador ve lo mismo. - Richard

¿Un motor de búsqueda verá lo mismo? Estoy haciendo esto para crear etiquetas SEO. - dnlgmzddr

@dnlgmzddr Esperaría que fueran 100% equivalentes. Pero todos sabemos que gran parte del software es menos funcional y tiene más errores de lo que uno podría desear. Esta pregunta podría ser más útil: stackoverflow.com/q/891977/67392 (aunque la mayoría de las respuestas, incluida la aceptada, no responden a la pregunta). - Richard

Mi sugerencia es usar @Html.Raw("su cadena") siempre que quiera forzar la cadena Raw.

Respondido 04 Abr '14, 18:04

Prueba con HttpUtility.HtmlDecode("Your string with special characters")

Por ejemplo:

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

Créditos para: @Hakan Fıstık

Enviar: ASP MVC Razor codifica caracteres especiales en el marcador de posición de entrada

Respondido 26 Abr '20, 20:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.