4 Ekim 2011 Salı

Request.URL ile alınan parametrede türkçe karakter problemi

Bazen dinamik olarak url ye parametreler gönderip oradaki parametrelerden verileri alıp işlem yapmamız gerekebilir.Fakat gönderilen parametrede türkçe karakter var ise bunu Request.QueryString ile aldığımızda karakterler okunamaz.Örnek :

url ye "www.domain.com?test=İ" gönderilir ise okunmaya çalıştığında 'İ' harfi 'Ä°' şeklinde gelecektir.

Bu sorunu düzeltmek için url şu şekilde gönderilmelidir :

string parametreDegeri = HttpUtility.UrlEncode("İ", System.Text.Encoding.UTF8)
Response.Redirect("www.domain.com?test="+ parametreDegeri);

Bu defa url ye şu şekilde bir değer gelicektir :

"www.domain.com?test=%c4%b0"

ve bu değer Request.QueryString("test") ile okunduğunda değer olarak "İ" harfi alınabilecektir.


Umarım faydalı olmuştur.