webForumDet fria alternativet

Svenska tecken

.NET

19 svar · 729 visningar · startad av m_soderlund

Medlem sedan sep. 20026 425 inlägg
Frågan#1

Jag har ett gäng HtmlAnchors på min sajt. Till dessa lägger jag dynamiskt ett attribut med värde när det behövs. Problemet är att tecken som å ä ö skrivs ut som å ä ö i källkoden och det går inte ihop med min teckenkodning.

Problemet uppstår när jag lägger till runat="server" till <a href=...>. Har kollat lite på Encoding i .NET men hittar inte riktigt det jag behöver. Tacksam för hjälp!

Medlem sedan sep. 20011 914 inlägg
#2

Vad är det för attribut, en querystring parameter eller...

Medlem sedan sep. 20026 425 inlägg
#3

Nej. Jag lägger till ett vanligt class-attribut.

m4.attributes.add("class","active")

En länk ser ut så här:

<a href="default.aspx?CatId=4& amp;SubId=0" id="m4"
title="Hj&amp;auml;lp i webbutvecklingen plus annat sm&amp;aring;tt & amp; gott." runat="server">artiklar</a>

Det konstiga är att & amp; inte blir till ett & i källkoden när å ä ö blir det de blir.

Jag lade till mellanslag mellan & och amp; i koden.

Medlem sedan nov. 20017 144 inlägg
#4
&amp;amp; ;)
Medlem sedan sep. 20026 425 inlägg
#5

Ingen som har någon idé än? &amp; blir till & i själva taggen men ej i beskrivningen av länken. Alltså:

<a href="default.aspx?x=1&i=3" ...>Här förblir &amp;amp; just &amp;amp;</a>
Medlem sedan nov. 20017 144 inlägg
#6

finns inte mostvarande urlencode i .net?

Medlem sedan sep. 20026 425 inlägg
#7

Jodå, det finns. Jag löste dock problemet med ett "fulhack". De a-element som har & i url:en gjorde jag så att jag lade till url-en dynamiskt till dem.

m2.attributes.add("href","default.aspx?CatId=2&amp;subId=0")
m4.attributes.add("href","default.aspx?CatId=4&amp;SubId=0")

Fult men fungerande. Tyvärr så blir dock ä etc. till &auml; i stället. :l Jag kan ta det men det är irriterande..

Medlem sedan juli 2004206 inlägg
#8

System.Web.HttpUtility.UrlEncode("här ska det in en url")

Medlem sedan sep. 20026 425 inlägg
#9

Nice. Men hur encodar man så att å ä ö blir &aring; &auml; &ouml;? Inte med UrlEncode eller HtmlEncode i alla fall.. :)

Medlem sedan juli 2004206 inlägg
#10

Byt ut encode mot decode

Medlem sedan sep. 20026 425 inlägg
#11

Problemet är då att å etc. blir &amp;aring; i stället och således skrivs fel text ut. :l

Medlem sedan juli 2004206 inlägg
#12

du kan ju inte köra encode på text som redan är encodad...då blir det dubbelt (går iofs att köra decode två gånger för att lösa upp det men det är ju inget bra)

SKa du koda en url så kör du urlencode/decode beroende på vilket håll du vill koda. Text som däremot ska visas på htmlsidan sak du ju då köra htmlencode/htmldecode på.

Medlem sedan sep. 20026 425 inlägg
#13

Det är .NET-motorn själv som gör om alla mina & i mina länkar till &. Det är jättebra i själva url-en men inte i title-attributet där jag beskriver länken. Problemet är alltså att den encodar lite för mycket.. När jag enbart har denna kod så händer detta:

m2.attributes.add("href","default.aspx?CatId=2&subId=0")
m2.attributes.add("class","active")

m2 är en HtmlAnchor som ser ut så här i själva koden:

<a title="Diverse sm&amp;aring;bitar ur vardagen." id="m2" runat="server">fotogalleri</a>

När man kollar källkoden i webbläsaren sedan så ser samma länk ut så här:

<a href="default.aspx?CatId=2&amp;amp;subId=0" id="m2" title="Diverse småbitar ur vardagen.">fotogalleri</a>

Märkligt va?

Medlem sedan juli 2004206 inlägg
#14

jo men den vet ju inte att den attribut du ska lägga på är en länk, eller hur? Kan du inte köra en hyperlink istället, typ:

<asp:HyperLink Runat="server" ID="lnkMyLink" NavigateUrl="http://minsökväg.se">test!!!!</asp:hyperlink>

...då kan du ju sätta:

lnkMyLink.navigateurl("default.aspx?CatId=2&subId=0")
Medlem sedan sep. 20026 425 inlägg
#15

Jag gjorde det förut och exakt samma problem uppstod.

Medlem sedan juli 2004206 inlägg
#16

lnkMyLink.navigateurl(System.Web.HttpUtility.UrlEncode("default.aspx?CatId=2&subId=0"))

Även med denna?

Medlem sedan sep. 20011 914 inlägg
#17

Det kan inte vara så att webbläsarna har någon typ av inbyggd decode funktion som gör detta på tex. title-attributet.

Medlem sedan sep. 20026 425 inlägg
#18

Då blir url-en ännu konstigare, vilket jag sett tidigare. (Plus att jag inte har problem med själva url-en utan andra attribut i länkarna.)

Jag vill enbart lösa problemet med att &aring; etc. blir till &amp;aring; när jag har dynamiska länkar.

Det är helt klart Microsoft som jävlas och gör om ALLA & till &amp; i både href-attribut, title-attribut etc.. ;)

Medlem sedan sep. 20011 914 inlägg
#19

Om du jämför det i Opera och IE så borde du se en skillnad. Vilken då indikerar på att det kan ligga i webbläsarna.

Medlem sedan sep. 20026 425 inlägg
#20

Jag kan tyvärr inte se min källkod i Opera, men exakt samma källkod skrivs ut i IE och Firefox i alla fall. Dvs &aring; etc. blir till &amp;aring;.

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)