webForumDet fria alternativet

åäö problematik i querystring

.NETur .NET

5 svar · 2 062 visningar · startad av Nianbig

NianbigMedlem sedan feb. 200616 inlägg
#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?

jokoMedlem 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.

NianbigMedlem 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.

NianbigMedlem 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..

freguzMedlem 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

jokoMedlem 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.

132 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)