Innanzi tutto saluto tutti.
Inizio a dirvi che ovviamente sono un neofita che proviene da vb6 e si stà approcciando proprio a asp.net, vi descrivo l'applicazione realizzata in poche parole.... ho un oggetto ocx che ha delle proprietà e dei metodi che mi permette di inviare sms, per far ciò accede ad una sezione del nostro sito (asp.net) che riceve i parametri ed invia gli sms. Le chiamate da vb6 ad asp.net sono tutte fatte in modalità GET. Ho provveduto a codificare tutte le stringhe inviate cin modo da sostituire i caratteri speciali tra cui le accentate con % ed il loro valore esadecimale della tabella ascii... da subito mi sono accorto che se chiamavo:

http://miosito/default.aspx?testo=questa+%e8+una+prova

su visual studio 2008

Request.Querystring("testo") mi visualizzava

"questa � una prova"

se facevo UrlDecode(Request.QueryString("testo")) mi dava la stessa cosa

"questa � una prova"

Allora leggendo in giro ho letto che la codifica utilizzata di default da VS2008 è l'UTF-8 quindi la "è" si codifica con "%c3%a8".... per cui richiamo la pagina con

http://miosito/default.aspx?testo=qu...3%a8+una+prova

ed alla richiesta di Request.Querystring("testo") mi restituisce

"questa è una prova"

Ora fin qui tutto ok, anzi no, perchè la querystring è già decodificata?

se controllo il valore di Request.RawUrl ottengo testo=questa+%c3%a8+una+prova
Quindi Request.QueryString("testo") doveva restiuirmi:

questa+%c3%a8+una+prova

mentre invece UrlDecode(Request.QueryString("testo")) il valore decodificato

questa è una prova

Mi piacerebbe capire le ragioni di questo comportamento, e magari dove poter modificare il charset da UTF-8 in altro.... Ho provato a mettere nelle pagine session.codepage = 1252 o altro ma non cambia nulla, così come aggiungere il tag:
<meta http-equiv="Content-Type" content="text/html; charset=1252" />

Ma anche questo non ha efficacia sulla codifica, l'unico modo per specificare il tipo di codifica è usare:

urldecode("%e8",Encoding.GetEncoding(1252)) allora ottengo una "è".

solo che se chiamo la pagina con

http://miosito/default.aspx?testo=%e8

e faccio:

urldecode(request.QueryString("testo"),Encoding.Ge tEncoding(1252))

putroppo ottengo "�" perchè è già attiva "la codifica UTF-8 automatica" che anticipa tutto.... almeno sembrerebbe......

Tra l'altro sono giorni che googolo ma non sono riuscito a venirne a capo..... se non modificare l'oggetto ocx vb6 facendo una codifica UTF-8 delle varie get..... solo che è un aggirare il problema anziché risolverlo.
Dimenticavo il framework è il 3.5.