Pandas 1.0.3
Python 3.7.6
код:
import pandas as pd
df = pd.DataFrame(data={'uom': ['M³']})
with open('encoded.csv', 'w') as csv_file:
df.to_csv(csv_file, index=False, line_terminator='\n', encoding='utf-8')
with open('encoded.csv', 'r', encoding='utf-8') as csv_file:
print(csv_file.read())
Когда я запускаю это на своей ма c, это работает нормально, выводя csv, показывающий кубические c метры в качестве единицы измерения:
uom
M³
Но при работе на windows не удается прочитать записанный файл:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 7: invalid start byte
Вместо этого, похоже, что df.to_csv проигнорировал мою просьбу кодировать его как utf-8, а скорее записал его как iso-8859-1. Это работает в windows для чтения файла:
>>> csv_file = open('encoded.csv', 'r', encoding='iso-8859-1')
>>> print(csv_file.read())
uom
M³
Как заставить pandas 1.0.3 записать csv в кодировке UTF-8 при работе на Windows?