سلام

دنبال یک روش برای پاکسازی متن برای استفاده در Url هستم. ( و نه Decode کردن! )
برای مثال سایتهای DotNetTips.info , StackOverFlow.com بخوبی از این سیستم استفاده می کنند.
در این سایت ها حروفی غیر از حروف اصلی حذف می شوند و بجای آنها "-" قرار می گیرد. ( البته با یک سری شرط و شروط دیگر که خارج از بحث هستند)

حالا یک نمونه خوب از خود StackOverFlow پیدا کردم اما با حروف Unicode مشکل داره.

بعد از تست کردن کد فوق ، تصمیم گرفتم یک Regular Expression بنویسم که فقط حروف فارسی ، انگلیسی و عدد قبول کند:

[^a-zA-Z0-9\u0600-\u06FF]+


اما حروف عربی و علامت هم قبول می کند.

نتیجه ی replace کردن رشته ی "تبدیل صفحات یک فایل PDF به تصویر، با استفاده از Acrobat SDK" با Regular Expression فوق ، مقدار "تبدیل-صفحات-یک-فایل-PDF-به-تصویر،-با-استفاده-از-Acrobat-SDK" می باشد.

که حرف "،" هم باید جایگزین شود که نشده است.

راهی که میدونم اینه که در این Range ، مقدایر عربی و علامت رو حذف کنم اما دقیقا نمیدونم چه حروف و علامت هایی رو باید حذف کنم.
اگر به این جدول هم توجه کنید ، میبینید که تعداد این حروف بسیار زیاد بوده و امکان تمایز بین حروف و خارج کردن آنها از بازه ی فوق ، براحتی امکان پذیر نیست.

پست های جناب موسوی رو هم در این تاپیک ها ( -1- ، -2- ) مطالعه کردم ولی خروجی همچنان مشابه فوق است.

در نهایت فکر می کنم که مسئله ( Clean کردن متن و استفاده در Url ) رو باید با Regex حل کنم ، اما بیشتر خرسند میشم اگه راه حل های مختلف ( و البته کارا ! ) رو هم از شما دوستان یاد بگیرم.

( برای تست راه حل ها هم میتونید عبارت هایی که شامل علامت، حروف عربی، ... هستند در این صفحه رو با راه حلتون تست کنید و با نتیجه ی Clean شده مقایسه کنید )

با تشکر از همه ی دوستان عزیز!