2014-10-25 22 views
5

Bir örnek görelim HTML kaynağında garip kodlama formatında FußgängerübergängeC# ASP.NET MVC kaynak dosyanın dize

Ben Ne:

  • web.config dosyası:

    ... 
    <system.web> 
        <globalization 
         fileEncoding="utf-8" 
         requestEncoding="utf-8" 
         responseEncoding="utf-8" 
         culture="auto" 
         uiCulture="auto" 
        /> 
    ... 
    
  • bu kelimeyi içeren bir kaynak dosyası:

    Ben göründükleri web sayfasının kaynak kodunda bunları kontrol ettiğinizde

    ... 
    <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> 
    ... 
    
  • :

    <?xml version="1.0" encoding="utf-8"?> 
    <root> 
        ... 
        <data name="TestWord" xml:space="preserve"> 
         <value>Fußgängerübergänge</value>  
        </data> 
        ... 
    </root> 
    
  • bir html sayfası 0 aynı kelimeyi ve bu kelimeyi başvurmak için bu kaynağı kullanarak ve aynı zamanda DB'den bu kelimeyi alınırken kodlanmış iki farklı yolu:

    ... 
    <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&#223;g&#228;nger&#252;berg&#228;nge</div> 
        <div>Fu&#223;g&#228;nger&#252;berg&#228;nge</div> 
    </body> 
    ... 
    

Soru: yanlış ne yaptın, ben nasıl çözebileceğinizi bu "kodlama" iss ue? Son 2 kelimeyi kaynak kodunda ilk iki kelimeyle aynı görünmesini istiyorsanız ne yapmalıyım?

cevap

6

HTML kodlu olmaktan metin engellemek istiyorsanız, sadece Html.Raw kullanabilirsiniz:

@Html.Raw(Resources.MyResource.TestWord) 

olsa bir sorun aslında kodlama mı?

+0

@ Html.Raw işe yaramadı :(hala aynı davranış ... – Bundy

+0

Ah, Tamam. Bu, TestWord'unuzun zaten kaynaklarınızdan çıkarıldığında HTML kodlanmış olduğunu ima ediyor - Birkaç şey denedim ve cevabı düzenleyin.Bu arada, karışık görünen ile çözebilir: Html.Raw (HttpUtility.HtmlDecode (Resources.MyResource.TestWord)) – Alan

+0

Hala aynı, db veya hardcoded gelen her ne olursa olsun "saf" -texts ne olursa olsun Kaynaktan geliyor garip ... Her kim web sitesini kontrol eder, onun "görünümü" tamam, ama kaynak kodu yarı normal yarı kodlanmış ... izleyiciler için can sıkıcı olmayabilir, ama Bu sorunun neden benim için sinir bozucu olduğunu bilmiyorum :) – Bundy