webForumDet fria alternativet

åäö problematik i querystring

.NET

5 svar · 2 062 visningar · startad av Nianbig

Medlem sedan feb. 200616 inlägg
Frågan#1

Hej

Jag försöker skicka in ett värde som innehåller åäö via ett vanligt GET-anrop till en aspx sida.

Min url ser ut såhär:
Default.aspx?test=asdfåäöasdf

Min kod i Default.aspx ser ut såhär:
<%=Request.Url %>
<%=Request.RawUrl %>
<%=Request.QueryString["test"] %>
<%=Request.Params["test"] %>

Resultat blir såhär:
http://localhost:2699/WebSite3/Default.aspx?test=asdfåäöasdf
/WebSite3/Default.aspx?test=asdf%E5%E4%F6asdf
asdfasdf
asdfasdf

Varför strippas åäö bort såfort jag försöker komma åt värdet med querystring eller params?

Medlem sedan maj 20075 inlägg
#2

De strippas inte bort, de kodas om till %E5 för å %E6 för ä o.s.v.

Alla tecken som inte finns i charactersetet för en URI representeras med %XX. T.ex. är ett så vanligt tecken som blanksteg %20 då det är med i en querystring.

Medlem sedan feb. 200616 inlägg
#3

Jag vet inte om du läste igenom mitt inlägg, men det jag skickar in är "asdfåäöasdf", eller url-enkodat: "asdf%E5%E4%F6asdf" men jag får bara ut "asdfasdf".

%E5 osv kommer inte med alls, det _strippas_ bort.

Medlem sedan feb. 200616 inlägg
#4

Cultureinfo i Web.config gjorde susen:
<globalization
requestEncoding="iso-8859-1"
responseEncoding="iso-8859-1"
culture="sv-SE"
uiCulture="sv-SE"
/>

Jag förstår dock inte att ASP.NET strippar bort åäö på det sättet även om man har ett annat språk/land,, idiotiskt..

Medlem sedan feb. 2005280 inlägg
#5

Nianbig skrev:

Jag vet inte om du läste igenom mitt inlägg, men det jag skickar in är "asdfåäöasdf", eller url-enkodat: "asdf%E5%E4%F6asdf" men jag får bara ut "asdfasdf".

%E5 osv kommer inte med alls, det _strippas_ bort.

Det förutsätts att du skickar med unicode, vilket du inte gjort, du måste alltså ha unicode-urlEncodat strängen som du ska ha i GET, dvs ä = %c3%a4 osv

Medlem sedan maj 20075 inlägg
#6

Nianbig skrev:

...
Resultat blir såhär:
...
/WebSite3/Default.aspx?test=asdf%E5%E4%F6asdf
...

Aha, jag missuppfattade. Trodde ovanstånde var det du fick tillbaka.

367 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
239 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)