Конференція VBStreets - Перегляд теми - Як визначити кодування DOS
Як визначити кодування DOS
Рішення є, не 100%, але досить дієве дивіться нижче.
Визначити за текстом його кодування зі 100% влученням неможливо. Інакше не було б старої безглуздої байки про Буша, який приховав факти в Блокноті.
Тож або запитувати у користувача, або вибирати навмання.
Рішення є не 100%, але досить дієве
Нарешті знайшов альтернативну кодову сторінку 866 у стародавній книзі "MS-DOS 6.2". В інтернеті, як не дивно, не зміг. українські літери в ній мають коди в діапазонах 128-175 та 224-239. А сторінці 1251 Windows в діапазоні 192-255, 168 Е, 184
Якщо прийняти: 1. Необхідно вибирати тільки між DOS та Windovs, ніяких koi-8 тощо. 2. У тексті лише англійські та українські символи, жодних німецьких та чеських тощо. то кодування визначаємо за правилом: є символи з кодом 128-175 => dos, застосовуємо OemToChar
У цей діапазон сходять усі великі українські літери та половина малих. Для більшої впевненості з нього можна виключити 168 Е, 155, 166, 171 лапки, 150 і 151 короткий і довгий дефіс і т.п.. Але в txt файлах ці символи зазвичай не зустрічаються.
Зрозуміло, можлива помилка, але вона виникає, коли українські слова складаються лише з літер р-ю. Тобто, ймовірність досить маленька.