webForumDet fria alternativet

Världens skummaste problem

.NET

12 svar · 453 visningar · startad av mattiasjarnhall

Medlem sedan apr. 2001126 inlägg
Frågan#1

Hej alla glada.

Jag har upptäckt en riktigt skum grej idag. Om jag skickar en querystring (som innehåller å,ä,eller ö) med i url:en i browsern till en aspx-sida så försvinner dessa bokstäver.
Skapar jag däremot en länk som skikar med exakt samma tecken så försvinner inga tecken.

Testa gärna här: http://www.backpacking.nu/aspNetTest.aspx

Börja först med att trycka på länken där för att se att "aåaäaö" skrivs ut. Gå sedan upp i URL:en och ta bort eller lägg till en bokstav och tryck enter. Vad händer? Jo alla å,ä,och ö försvinner!

Kan någon vänlig själ förklara VARFÖR?
Vad är det för skillnad att göra en Request till en server via en länk mot att skriva den direkt i browsern? Det borde väl inte vara någon skillnad tycker jag?!

Medlem sedan juni 200032 967 inlägg
#2

Det torde bero på att de flesta webbläsare nuförtiden automatiskt url-encodar querystrings i länkar.

I min Mozilla ser man det också i adressraden, men IE verkar göra det osynligt.

red: Jag menar givetvis url-encoding, inte html-encoding.

Mvh

Medlem sedan apr. 2001126 inlägg
#3

? Förstår inte..

Vad blir skillnaden om jag klickar på länken och på så sätt skickar med querystringen? från att skriva in den direkt i browsern?

Medlem sedan nov. 20014 054 inlägg
#4

Vad kuligt!

Men annars brukar man ju kunna skicka med åäö i en QueryString men att webbläsaren endast översätter den med typ UrlEncode inte att den plockar bort den helt och hållet från din querystring.

Vad mysigt! :e

Medlem sedan nov. 20014 054 inlägg
#5

Förresten när jag visar källa till ditt ASP.NET script vad vackra åäö blir

<p>
<a href="aspNetTest.aspx?test=aåaäaö">En länk som skickar med aåaäaö som QueryString</a>
</p>

<p>
RESULTAT:<br>
Din QueryString = <br>
</p>

Det var också kuligt! :e

Medlem sedan mars 200348 inlägg
#6

Har du testat att sätta doctype och encoding på sidan?
Blir problemet likadant då?

Medlem sedan apr. 2001126 inlägg
#7

Hur skall jag skriva ulfe?

Medlem sedan mars 200348 inlägg
#8

Testa att lägga in (ovanför header)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

i headern:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Medlem sedan apr. 2001126 inlägg
#9

Hjälpte inte..

Medlem sedan mars 200348 inlägg
#10

Sorry
När jag kollar din sida ovan ser jag inte att du addat dessa saker...

Kör du codebehind eller koden i aspx-sidan?

Medlem sedan apr. 2001126 inlägg
#11

Jag tog bort det efter att jag testat :)

Medlem sedan mars 200348 inlägg
#12

OK
Sorry att jag inte kunde hjälpa dig, men det har väl aldrig varit rekommenderat med åäö i filnamn/querystrings

Vad händer om du använder POST istf GET för att hämta dina filer? Samma sak?

Medlem sedan apr. 2001126 inlägg
#13

Nu börjar jag närma mig felet!
För att bilden skall fungera måste jag köra länken genom Server.UrlEncode precis som någon sa ovan.. problemet är bara att asp's UrlEncode inte ger samma resultat som ASP.NET's

Inputsträng: Fjäril.JPG

UrlEncode med ASP: fj%E4ril%2EJPG
UrlEncode med ASP.NET: fj%c3%a4ril.JPG

Varför blir de olika?
Problemet är att jag "anropar" min aspx sida från en asp-sida vilket tvingar mig till att använda UrlEncode på asp-sidan.

Jag kan ju iof lösa problemet genom att göra en engen UrlEncode-funktion som ser lika dan ut som asp.net's, men det känns drygt. Någon som kan komma på ett bättre sätt?

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)