#cpp
Работаю в ubuntu. Имеется utf-8 файл, в котором записаны как русские, так и английские слова. Как корректно считать из него русские слова? wfstream fin(_fileName); if (!fin) throw std::exception(); wstring nextLine; while(fin) getline(fin, nextLine); fin.close(); getline() почему-то вообще не видит русских символов и читает только английские
Ответы
Ответ 1
Если у Вас файл в UTF-8, то и используйте однобайтовые потоки ввода, а также однобайтовую string: fstream fin(_fileName); if (!fin) throw std::exception(); string nextLine; while(fin) getline(fin, nextLine); fin.close(); Теперь строки у Вас будут читаться корректно. Но это только начало Ваших проблем, а ничуть не их окончание. Как Вы собираетесь дальше работать с полученными данным? std::string это набор символов типа char, и этот класс ничего не знает об UTF-8.
Комментариев нет:
Отправить комментарий