UnicodeDecodeError 'utf-8' codec can't decode byte 0xd2 in position 0: invalid continuation byte

У меня есть страница, на которую пользователь загружает csv-файлы. Если я отправляю файл в кодировке utf-8, то всё работает как нужно, но если я выбираю файл в любой другой кодировке(например windows-1251), то выдает 'utf-8' codec can't decode byte 0xd2 in position 0: invalid continuation byte. Хотя я вообще использую encoding='cp1251' (русский).

Что нужно добавить\исправить, чтобы поддерживались файлы с любой кодировкой, а не только utf-8?

View post метод:

    def post(self, request):
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            file = form.cleaned_data['file']
            process_csv_file(file)
        return render(request, 'add-by-file.html', {'form': form})

Где форма UploadFileForm просто:

class UploadFileForm(forms.Form):
    file = forms.FileField()

А process_csv_file:

def process_csv_file(file):
    df_all = pd.read_csv(file, delimiter=',', encoding='cp1251')
    # proccessing df 

Пример содержимого файла:

name,email,phone
Тест1,mail1@mail.com,81111111111
Тест2,mail2@mail.com,82222222222

Часть Traceback:

Traceback (most recent call last):
  File "pandas\_libs\parsers.pyx", line 1073, in pandas._libs.parsers.TextReader._convert_tokens
  File "pandas\_libs\parsers.pyx", line 1204, in pandas._libs.parsers.TextReader._convert_with_dtype
  File "pandas\_libs\parsers.pyx", line 1217, in pandas._libs.parsers.TextReader._string_convert
  File "pandas\_libs\parsers.pyx", line 1396, in pandas._libs.parsers._string_box_utf8
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd2 in position 0: invalid continuation byte

Вернуться на верх