Różnica między encoding = 'utf-8' a'utf-8-sig 'w pd.read_csv ()
Difference Between Encoding Utf 8andutf 8 Sigin Pd
Dziwny problem z formatem Pandas.read_csv
Oprócz wspólnego utf-8, gbk, dzisiaj stwierdziłem, że jest też utf-8-sig
Otwórz w domyślnym formacie, takim jak ten:
Oczywiście jest to problem z kodowaniem, ale kiedy otworzyłem plik za pomocą utf-8, znalazłem to:
Otwórz plik za pomocą open i zobacz:
Widać, że w nagłówku pliku znajduje się pole ufeff, więc co oznacza feff?
feff to BOM (Byte Order Mark), które jest niewyświetlanym polem identyfikacyjnym. W utf-16 lub utf-32 itp., Feff jest umieszczane na pierwszej pozycji, aby wskazać, że strumień bajtów jest wysoki z przodu Nadal niski z przodu
Ale ogólny utf-8 nie wymaga BOM. Aby rozwiązać ten problem, używamy kodowania utf-8-sig do otwarcia pliku csv, widać, że jest to normalne:
Podsumowanie: Podczas napotkania problemów z kodowaniem, oprócz rozważenia gbk (narodowy standard rozszerzenia) i utf-8, pamiętaj, aby sprawdzić BOM i inne niewidoczne, ale złośliwe postacie, i otwórz bezpośrednio za pomocą open. Spójrz na plik i wróć do najbardziej podstawowym poziomie, aby zobaczyć go wyraźniej.