У нас есть пользователи, которым необходимо иметь возможность экспортировать данные в CSV, который они открывают в Excel на компьютерах Mac, которые поддерживают символы utf-8.
ПРИМЕЧАНИЕ. Мы не хотим, чтобы наши пользователи переходили на вкладку данных, нажимали импорт из текста, а затем ... Мы хотим, чтобы они могли открыть файл сразу после загрузки и отобразить правильную информацию. .
Сначала я думал, что это просто проблема кодирования / декодирования, так как мы используем Python 2.7 (активно работаем над обновлением до Python 3.6), но после того, как это было исправлено, я обнаружил, что Excel был причиной проблемы (так как CSV отлично работает при открытии в текстовом редакторе или даже чисел). Решение, которое я пробую, заключается в добавлении спецификации utf-8 в начало файла, когда я где-то читал, что это позволит Excel знать, что для него требуется utf-8.
#Here response is just a variable that is valid when used like this and
#we can export CSV's fine that don't need utf-8
writer = csv.writer(response)
writer.writerow("0xEF0xBB0xBF")
Я надеялся, что простое добавление в начало файла csv спецификации utf-8 позволит Excel понять, что при открытии этого файла необходимо использовать кодировку utf-8, но, увы, она не работает. Я не уверен, что это связано с тем, что Excel для MAC не поддерживает это или я просто неправильно добавил спецификацию.
Редактировать: я не уверен, почему я не упомянул об этом, так как это было важно в решении, но мы используем Django. Я нашел этот пост переполнения стека, который дал решение (которое я включил ниже).