PDA

View Full Version : چطور می تونم یک query فارسی رو encode و decode کنم؟



mastermehdi1
دوشنبه 22 فروردین 1390, 22:08 عصر
سلام دوستان
چطور می تونم یک query فارسی رو encode و decode کنم؟
بعضی از مرورگرها فارسی رو به علامت سوال تبديل می کنن
به همين خاطر می خواستم url رو encode و decode کنم.
سایتمم رو با #C نوشتم

amirjalili
سه شنبه 23 فروردین 1390, 11:22 صبح
برای مثال :

( "http://www.daveamenta.com/file.aspx?mydata=" +
System.Web.HttpUtility.UrlEncode( "this is a string that I need to send to the server?" ) );


اما نکته مهم به نقل از بهروز خان راد:

UrlEncode برای تبدیل کاراکترهای خاص به معادل اونها در وب هست!
به عنوان مثال، معادل >، عبارت 3C% هست.
اگر قصد کد کردن URL رو داری، می تونی مثلا از متدهای ToBase64 و FromBase64 کلاس Convert استفاده کنی (اما استفاده نکن!)
نکته ی مهمی که حیف هست در این بین گفته نشه اینه که چون مجبوری که در نهایت از یک الگوریتم برگشتی نیز برای کد گشایی URL استفاده کنی، اگر از کلاس ها و متدهای آماده ای که در دات نت وجود داره استفاده کنی و اون متدها، Key Based نباشن، و یک هکر بتونه اون الگوریتم رو حدس بزنه، امنیت برنامه ی شما با کشک برابر خواهد شد. لذا، ToBase64 و FromBase64 به هیچ وجه الگوریتم های مناسبی نیستند!
بهترین الگوریتم، الگوریتمی است که بتونی برای اون یک کلید عمومی یا خصوصی داشته باشی که حدس اون کلید کاری بس دشوار است...
نمونه هایی از این دست از الگوریتم ها همانند HMACSHA1 و MACTripleDES رو می تونی در کلاس System.Security.Cryptography پیدا کنی.