C# StreamReader Türkçe Karakter Sorunu Çözümü, yazımız ile c sharp eğitimlerimize devam ediyoruz. Önceki dersimizde streamreader ve streamwriter kullanımı dersimizi paylaşmıştım. Bağlantıya tıklayarak ilgili derse gidebilirsiniz.. Şimdi ise streamreader sınıfı kullanımında Türkçe karakterleri okuyamaması sorununa değineceğiz. Aslında okuyor ama okunan metni bir textbox’a vs yazdığımızda Türkçe karakterler ? olarak yada æ gibi anlamsız karakterler olarak gösteriyor. Daha doğrusu encode edemiyor yani tanıyamıyor. Türkçe karakterleri tanımasını sağlamalıyız. Burada da okuma işlemi esnasında Türkçe karakterleri destekleyen encode biçimini kullarak okuyama işlemini yapacağız. Şimdi gelin, C Sharp StreamReader Türkçe Karakter Sorunu Çözümü ‘ne bakalım.
C Sharp StreamReader Türkçe Karakter Sorunu Çözümü
Çok kısa bir işlemdir. Aslında okuma yaptığımız satırın sonuna bir parametre olarak eklediğimiz bir okuma parametresidir.
string yardim = ""; StreamReader sr = new StreamReader(String.Format(@"{0}YardimTextKaydet.ini", System.Windows.Forms.Application.StartupPath), Encoding.GetEncoding("iso-8859-9"), false); yardim = sr.ReadToEnd(); sr.Close();
kodlarımızı inceleyecek olursak;
1 – System.Windows.Forms.Application.StartupPath kodu proramın exe uzantılı dosyasının çalıştığı klasörü alır. Atıyorum çalıştırdığımız program D://Projeler/Deneme yolunda ise Deneme klasörünün içine bak demiş oluyoruz.
2 – Encoding.GetEncoding(“iso-8859-9”) verdiğimiz bu parametre ile metin dosyasının Türkçe karakter içerdiğini ve ona göre okuması gerektiğini söylüyoruz. Bu şekilde okuma işleminde Türkçe karakterler bize sorun çıkarmıyor ve düzgün bir şekilde okunmuş oluyor.
C Sharp StreamReader Türkçe Karakter Sorunu Çözümü, yazımız da bu kadar dostlar. Diğer derslerimizde görüşmek üzere.
C Sharp Eğitim Seti ve ERP Programlama ders listesi için tıklayınız.
Takipte ve Sağlıcakla Kalın. ?
işe yaramadı :(
System.Text.Encoding utf_8 = System.Text.Encoding.UTF8;
// Bizim string’imiz
string s_unicode = “abcéabc”;
// string’i utf-8 byte’e dönüştürme
byte[] utf8Bytes = System.Text.Encoding.UTF8.GetBytes(s_unicode);
// utf-8 byte’i string’e dönüştürme
string s_unicode2 = System.Text.Encoding.UTF8.GetString(utf8Bytes);
Bunu dener misin?
————————————
iso-8859-9 yerine windows-1254 yazarak da deneyebilirsin.
———————————–
NOT: Hangi encode ile yazıyorsan o encode ile okuman lazım. Bunu unutma