Проблема несовместимости текстовых файлов между разными кодировками может возникать по нескольким причинам:
- Использование устаревшего ПО, не поддерживающего Юникод. 1
- Работа с приложениями для командной строки, в которых по историческим причинам используются кодировки времён DOS, например CP866 для русского языка. 1
- Неправильные шрифты при печати на принтере или фотонаборном автомате. 1
- Неверно настроенная локали программы (например, когда вместо кодовой страницы CP1251 используется CP1252). 1
- Отсутствие указания кодировки при выводе текста по HTTP: если кодировка нигде не указана, RFC 2616 даёт значение по умолчанию — ISO-8859-1. 1
- Некорректная работа перекодировщика. 1 Например, некоторые программы-перекодировщики преобразуют только базовые русские буквы, а все остальные символы оставляют на месте. 1
- Отсутствие символов в целевой кодировке. 1 В этом случае отсутствующие символы могут просто выбрасываться, заменяться на символ-заменитель или же заменяться на похожие символы из ASCII. 1
По умолчанию кодировка файла не сохраняется вместе с файлом, поэтому любая программа, которая хочет открыть файл и отобразить его содержимое, должна угадать кодировку. 4 Эта процедура подвержена ошибкам. 4