Сделал еще 1 вариант определителя неправильной кодировки. Без словаря. На слогах. Считаются суммы вероятностей всех слогов в тексте. Слогов намного меньше чем слов.

Как обычно джемини написал код за 5 секунд. И потом я 2 часа пытался понять почему ничего не работает.

В итоге вроде нормально работает. А какие слова у вас пунто свитчер неправильно определял?