C# Türkçe karakter sorunu (Türkçe'den Latin Harfe Convert )



String tipinde ConvertLocalCracter isimli bir metodumuz var. yapmış olduğu iş şudur: içinde Tükçe  karekterlerin (ÖöÜüĞğŞşİıÇç)de olduğu bir karekter katarı veriyi alıyor önce char[] dizi isimli Array dizisine ASCI karekteri olarak aktarıyor. sonra dizi uzunluğu kadar bir for döngüsü çalıştırıyor. Döngünün içinde if, else if ve else kontrolleri ile char dizisindeki  veriyi karekter karekter kontrol ediyor eşleşmelerde byte[] cdizi sine  ekliyor if ve else if kontrolüne takılmayan text içindeki sorunsuz  karekterleri ise else kontrolünde yakalayıp byte[] dizisine ekliyor. for döngüsü bittiğindede byte[] dizisindeki verileri string tipinde veriye dönüştürüp ConvertLocalCracter metodunu çağıran kontrole geri yolluyor.

 

        public string ConvertLocalCracter(string text)

        {

            char[] dizi = text.ToCharArray();

            byte[] cdizi = new byte[dizi.Length];

 

            for (int i = 0; i < dizi.Length; i++)

            {

                if (dizi[i] == 214)

                    cdizi[i] += 79;

                else if (dizi[i] == 246)

                    cdizi[i] += 111;

                else if (dizi[i] == 199)

                    cdizi[i] += 67;

                else if (dizi[i] == 231)

                    cdizi[i] += 99;

                else if (dizi[i] == 350)

                    cdizi[i] += 83;

                else if (dizi[i] == 351)

                    cdizi[i] += 115;

                else if (dizi[i] == 286)

                    cdizi[i] += 71;

                else if (dizi[i] == 287)

                    cdizi[i] += 103;

                else if (dizi[i] == 220)

                    cdizi[i] += 85;

                else if (dizi[i] == 252)

                    cdizi[i] += 117;

                else if (dizi[i] == 304)

                    cdizi[i] += 73;

                else if (dizi[i] == 305)

                    cdizi[i] += 105;

                else

                    cdizi[i] += (byte)dizi[i];

            }

            System.Text.Encoding enc = System.Text.Encoding.ASCII;

            string newText = enc.GetString(cdizi);

            return newText;

        }

 



Puan Ver

 
 

Yorum yapmak istiyorum





Yapılan Yorumlar


Yorum Tarihi Yapılan Yorum
11/15/2008 2:46:45 PM Harika bir örnek eline sağlık..