3. Cách thứ hai
- Cách này tỏ ra tối ưu hơn cách thứ nhất rất nhiều. Bạn không cần phải tìm hiểu quá nhiều về bảng chữ cái tiếng Việt.
- Hàm mô tả cách thứ hai như sau:
// Way 2 public string convertToUnSign2(string s) { string stFormD = s.Normalize(NormalizationForm.FormD); StringBuilder sb = new StringBuilder(); for (int ich = 0; ich < stFormD.Length; ich++) { System.Globalization.UnicodeCategory uc = System.Globalization.CharUnicodeInfo.GetUnicodeCategory(stFormD[ich]); if (uc != System.Globalization.UnicodeCategory.NonSpacingMark) { sb.Append(stFormD[ich]); } } sb = sb.Replace('Đ', 'D'); sb = sb.Replace('đ', 'd'); return (sb.ToString().Normalize(NormalizationForm.FormD)); }
4. Cách thứ ba
- Cách này tương tự cách thứ 2. Nhưng cách viết ngắn gọn hơn. Chúng ta có thể sử dụng cách này.
// Way 3 public static string convertToUnSign3(string s) { Regex regex = new Regex("\\p{IsCombiningDiacriticalMarks}+"); string temp = s.Normalize(NormalizationForm.FormD); return regex.Replace(temp, String.Empty).Replace('\u0111', 'd').Replace('\u0110', 'D'); }
5. Chương trình Demo chuyển tiếng Việt có dấu sang không dấu với C#
- Chương trình demo được viết trên Visual Studio 2010 (C#). Có giao diện như sau:
- Chương trình có demo cả 3 cách đã trình bày ở trên. Do chương trình xử lý sự kiện textchanged của textbox nên chỉ cần bạn thay đổi nội dung của ô textbox trên thì textbox dưới sẽ tự động chuyển đổi.
asp.net.vn
» Tin mới nhất:
» Các tin khác: