BilgeAdam‘da bir öğrencimin sorusu üzerine, bir dosyanın UTF8 formatında olup olmadığını belirlemek için programatik yollar düşünmeye başlamıştım.
System.Text namespace’inde bulunan Encoding class‘ını incelerken şöyle bir yol buldum;
public static bool IsUtf8(string DosyaAdi) { using (var Dosya = File.Open(DosyaAdi, FileMode.Open)) { byte[] pre = Encoding.UTF8.GetPreamble(); var b = new byte[pre.Length]; Dosya.Read(b, 0, b.Length); return b.SequenceEqual(pre); } }
Sadece dosyanın UTF8 olduğunu kontrol etmek için biraz hantal bir yol gibi gözüküyor değil mi?
Daha iyi bir yöntem öneriniz varsa, yorumlarınızı bekliyorum.
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484