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.
5 svar · 2 062 visningar · startad av Nianbig
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?
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.
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.
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
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.