Thursday, May 8, 2008

Loại bỏ dấu tiếng Việt trong C#

Khi bạn làm việc với các dự án liên quan đến tiếng Việt, đôi khi bạn cần thực hiện loại bỏ toàn bộ dấu tiếng Việt. Ví dụ trong bảng lương của kế toán gửi cho ngân hàng trong kỳ chuyển lương qua thẻ ATM hàng tháng, bạn phải thêm một cột họ tên viết hoa không dấu của từng chủ thẻ ATM, trong trường hợp này, bạn cần phải tiến hành loại bỏ toàn bộ dấu tiếng Việt của mục họ tên. Sau đây là lớp cho phép bạn thực hiện xử lý loại bỏ dấu của tiếng Việt.
public class StringUtil
{
 private static readonly string[] VietnameseSigns = new string[]
 {
  "aAeEoOuUiIdDyY",
  "áàạảãâấầậẩẫăắằặẳẵ",
  "ÁÀẠẢÃÂẤẦẬẨẪĂẮẰẶẲẴ",
  "éèẹẻẽêếềệểễ",
  "ÉÈẸẺẼÊẾỀỆỂỄ",
  "óòọỏõôốồộổỗơớờợởỡ",
  "ÓÒỌỎÕÔỐỒỘỔỖƠỚỜỢỞỠ",
  "úùụủũưứừựửữ",
  "ÚÙỤỦŨƯỨỪỰỬỮ",
  "íìịỉĩ",
  "ÍÌỊỈĨ",
  "đ",
  "Đ",
  "ýỳỵỷỹ",
  "ÝỲỴỶỸ"
 };
 
 public static string RemoveSign4VietnameseString(string str)
 {
 
  //Tiến hành thay thế , lọc bỏ dấu cho chuỗi
  for (int i = 1; i < VietnameseSigns.Length; i++)
  {
   for (int j = 0; j < VietnameseSigns[i].Length; j++)
    str = str.Replace(VietnameseSigns[i][j], VietnameseSigns[0][i - 1]);
  }
  return str;
 }
}

Hy vọng rằng công cụ trên có thể giúp bạn thực hiện được công việc của mình.

5 comments:

  1. Thanks cái hàm bỏ dấu tiếng việt của bạn nha.
    __________________________
    http://trucnguyen.dev-asp.net/

    ReplyDelete
  2. áp dung cái này để bỏ dấu tiếng việt tiêu dề blogger được ko bạn? Mình mò hoài mù không dược. bạn giúp với.Thanks.

    ReplyDelete
  3. Cảm ơn bạn rất nhiều. Đang cần thì tìm được chia sẻ của bạn.

    ReplyDelete