diff --git a/sage_validation/file_validator/forms.py b/sage_validation/file_validator/forms.py index 4a6895d777d502777b071895ea2ac01c068a006e..990b83ce708a694f1099d3688b0caf7abc67a771 100644 --- a/sage_validation/file_validator/forms.py +++ b/sage_validation/file_validator/forms.py @@ -76,7 +76,7 @@ class CSVUploadForm(forms.Form): self._validate_file_type(file) # Step 2: Parse file and validate headers - raw_data = file.read().decode("utf-8") + raw_data = file.read().decode("utf-8-sig") normalized_data = raw_data.replace("\r\n", "\n").replace("\r", "\n") csv_file = normalized_data.splitlines() reader = csv.DictReader(csv_file, delimiter=",") diff --git a/sage_validation/file_validator/views.py b/sage_validation/file_validator/views.py index aeaa50be6a9e9ada7d0bd7ed612cfd6c33a0d0cf..b58807d9b45587e4738eafae91e82ae6ab607dfb 100644 --- a/sage_validation/file_validator/views.py +++ b/sage_validation/file_validator/views.py @@ -53,7 +53,7 @@ class CSVUploadAPIView(APIView): csv_file = form.cleaned_data["file"] csv_file.seek(0) - decoded_file = csv_file.read().decode("utf-8").strip() + decoded_file = csv_file.read().decode("utf-8-sig").strip() if not decoded_file: return Response({"status": "error", "message": "Uploaded file is empty."},