óm tắt: Khi rewrite url, chúng ta thường thấy tiêu đề các bài viết được chuyển đổi thành chuỗi không dấu và dùng để làm địa chỉ truy cập vào bài viết, hàm sau được viết bằng C# và có chức năng như vậy.
public static string ConvertToUnSign(string text)
{
for (int i = 33; i < 48; i++)
{
text = text.Replace(((char)i).ToString(), "");
}
for (int i = 58; i < 65; i++)
{
text = text.Replace(((char)i).ToString(), "");
}
for (int i = 91; i < 97; i++)
{
text = text.Replace(((char)i).ToString(), "");
}
for (int i = 123; i < 127; i++)
{
text = text.Replace(((char)i).ToString(), "");
}
text = text.Replace(" ", "-");
Regex regex = new Regex(@"\p{IsCombiningDiacriticalMarks}+");
string strFormD = text.Normalize(System.Text.NormalizationForm.FormD);
return regex.Replace(strFormD, String.Empty).Replace('\u0111','d').Replace('\u0110', 'D');
}
Hàm này dựa hoàn toàn vào mã ACSII của các ký tự đặc biệt (trừ ký tự cách trắng – space có mã ACSII là 32), sau đó remove các ký tự đó khỏi chuỗi, đối với các ký tự cách trắng thì replace thành dấu “-“. Tiếp theo là chuyển các ký tự có dấu thành không dấu.
Như vậy là chúng ta đã có một hàm chuyển đổi từ chuỗi có dấu thành không dấu chạy khá ổn rồi