Topic: Проблема с модулем импорта из "русскоязычного" csv файла
Прикручивая к своему проекту импорт данных из csv файла на основе предложенного разработчиком кода столкнулся с неожиданной проблемой: если в csv файле встречается хотя бы одно слово на русском языке, то импорт не осуществляется.
Импорт не происходит из-за подсчета количества строк в загруженном файле.
sl := TStringList.Create;
sl.LoadFromFile (OpenDialog.FileName);
c := sl.Count - 1;
for i := 0 to c do
begin ...
Если файл содержит русские символы, то Count возвращает 0. А если в файле только английские символы, то возвращается как положено имеющееся число строк.
При этом, если попытаться русскоязычный файл загрузить например в комбобокс (Form1.ComboBox1.Items.LoadFromFile('1.csv')), то все строки загружаются нормально.
И в комбобоксе Count работает тоже нормально (Form1.ComboBox1.Items.Count).
Очевидно, TStringList не хочет работать с русской кодировкой, поэтому и Count никаких строк в нем не находит.
Протестировал при разных кодировках файла и стало ясно, что проблемы возникают если csv файл записан не в кодировке UTF-8.
Как сделать так, чтобы при загрузке файла его кодировка(разная) обрабатывалась корректно?