Vediamo un esempio: c'è una parola tedesca: Fußgängerübergänge
C# ASP.NET MVC di file di risorse è in un formato di codifica di strano nel codice HTML
Quello che ho:
web.config
di file:... <system.web> <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="auto" uiCulture="auto" /> ...
un file di risorse che contiene questa parola:
<?xml version="1.0" encoding="utf-8"?> <root> ... <data name="TestWord" xml:space="preserve"> <value>Fußgängerübergänge</value> </data> ... </root>
una pagina html hard-coded la stessa parola e l'utilizzo di questa risorsa per fare riferimento a questa parola e anche il recupero di questa parola da DB:
... <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ... </head> <body> <div>Fußgängerübergänge</div> <div>@Model.SameWordFromDbTable.TestWord</div> <div>@Resources.MyResource.TestWord</div> <div>@MvcHtmlString.Create(Resources.MyResource.TestWord)</div> </body> ...
Quando li ho check nel codice sorgente della pagina web in cui appaiono in due modi diversi:
... <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ... </head> <body> <div>Fußgängerübergänge</div> <div>Fußgängerübergänge</div> <div>Fußgängerübergänge</div> <div>Fußgängerübergänge</div> </body> ...
Domanda: che cosa ho fatto di sbagliato, come posso risolvere questo iss "codifica" ue? Cosa devo fare se voglio che le ultime 2 parole appaiano nel codice sorgente come le prime due?
@ Html.Raw non ha funzionato: (ancora lo stesso comportamento ... – Bundy
Ah, OK. Ciò implica che il tuo TestWord è già codificato in HTML quando è estratto dalle tue risorse - proverò un paio di cose e modifica la risposta. Nel frattempo, potresti decodificarlo con l'aspetto disordinato: Html.Raw (HttpUtility.HtmlDecode (Resources.MyResource.TestWord)) – Alan
Ancora lo stesso, qualunque cosa provenga da db o hardcoded sono "puri" -texts qualunque viene dalla risorsa è strano ... Chiunque controlli il sito web, la "vista" di esso è ok, ma il codice sorgente è mezzo-normale-mezzo codificato ... potrebbe non essere fastidioso per gli spettatori, ma da allora Non ho idea di cosa causi questo problema è fastidioso per me :) – Bundy