existerCSV не подходит для частого изменения, для поиска по определённым полям, для одновременного доступа к данным с разных клиентов. Он только для хранения подходит, для точной и компактной передачи информации.
- эти данные обработать так, чтобы юзеры не повторялись (не было два юзера с одной почтой или телефоном) - это если получится по времени
Так что завтра ты его не сдашь. Там должна быть какая-то нормальная база данных, которая поддерживает индексы (быстрый доступ при любом количестве данных), сложные запросы и операции над полями (сравнение, вырезка части из поля и так далее). Можно было бы взять SQLite-файл, но он не даст одновременного доступа с разных клиентов. Можно взять MySQL базу данных, она для десятков тысяч пользователей подойдёт хорошо, там и операции хорошие, очень удобная она. В идеале - использовать PostgreSQL, но она сложная, много фич всяких там, быстро не заучишь.
В общем, если ты собрался постоянно искать по CSV-базе, то это твоя ошибка - намаешься, нагенеришь кучу кода, а всё это можно только выкинуть будет потом.
existerА Google отключится или просто закроет таблицы, как бывало не раз с его проектами, и твой проект сдохнет в тот же день.
или импортит данные в Гугл Таблицу (тут все работает и с UTF8)
existerПредоставить ты можешь и на web-странице и для неё можно сделать кнопку экспорта в xls, csv, xml. Обычно так делают.
предоставить по итогу возможность в любой время в табличном виде получить данные пользователей
Начал ты неправильно, поэтому и сидишь сейчас с этими кодировками.