// Collection of code snippets by Arne Vajhøj // posted to eksperten.dk, usenet and other places (2002-now) using System; using System.IO; public class CharSetGuesser { public static string Guess(string filename) { int[] freq = new int[256]; Stream stm = new FileStream(filename, FileMode.Open, FileAccess.Read); int c; while((c = stm.ReadByte()) >= 0) { freq[c]++; } stm.Close(); if((freq[197] + freq[198] + freq[200] + freq[201] + freq[203] + freq[216] + freq[229] + freq[230] + freq[232] + freq[233] + freq[235] + freq[248]) > (freq[133] + freq[134] + freq[136] + freq[137] + freq[139] + freq[152] + freq[165] + freq[166] + freq[168] + freq[169] + freq[171] + freq[184] + freq[195])) { return "ISO-8859-1"; } else { return "UTF-8"; } } public static void Main(string[] args) { Console.WriteLine(Guess("C:\\iso-8859-1.txt")); Console.WriteLine(Guess("C:\\utf-8.txt")); } }