Đối với 1 số ứng dụng, yêu cầu đòi hỏi chúng ta phải chuyển từ tiếng Việt có dấu sang không dấu với 1 mục đích nào đó, cụ thể đối với ứng dụng của mình là chuyển tên nhân viên từ có dấu sang không dấu, dùng để export bảng lương của nhân viên thí dụ: Payroll/quach-ngoc-hoang-nguyen-01072011.xls.
Mình sẽ cung cấp 1 snippest code (C# và VB.NET) để cho các bạn tiện apply vào ứng dụng:
C#:
using System;
namespace CS
{
class Program
{
static void Main(string[] args)
{
const string TextToFind = "áàảãạâấầẩẫậăắằẳẵặđéèẻẽẹêếềểễệíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵÁÀẢÃẠÂẤẦẨẪẬĂẮẰẲẴẶĐÉÈẺẼẸÊẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴ";
const string TextToReplace = "aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyyAAAAAAAAAAAAAAAAADEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOUUUUUUUUUUUYYYYY";
string strVietNamese = "Quách Ngọc Hoàng Nguyên";
int index = -1;
while ((index = strVietNamese.IndexOfAny(TextToFind.ToCharArray())) != -1)
{
int index2 = TextToFind.IndexOf(strVietNamese[index]);
strVietNamese = strVietNamese.Replace(strVietNamese[index], TextToReplace[index2]);
}
Console.WriteLine(strVietNamese);
Console.Read();
}
}
VB.NET
Module Module1
Sub Main()
Const TextToFind As String = "áàảãạâấầẩẫậăắằẳẵặđéèẻẽẹêếềểễệíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵÁÀẢÃẠÂẤẦẨẪẬĂẮẰẲẴẶĐÉÈẺẼẸÊẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴ"
Const TextToReplace As String = "aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyyAAAAAAAAAAAAAAAAADEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOUUUUUUUUUUUYYYYY"
Dim strVietnamese As String = "Quách Ngọc Hoàng Nguyên"
Dim index As Int32 = -1
While (strVietnamese.IndexOfAny(TextToFind.ToCharArray()) <> -1)
index = strVietnamese.IndexOfAny(TextToFind.ToCharArray())
Dim index2 = TextToFind.IndexOf(strVietnamese(index))
strVietnamese = strVietnamese.Replace(strVietnamese(index), TextToReplace(index2))
End While
Console.WriteLine(strVietnamese)
Console.Read()
End Sub
End Module
Hy vọng đoạn code trên giúp các bạn tiết kiệm được thời gian quý báu của các bạn
(Thanks GiangNguyen for your code)