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