W moim systemie plików (Windows 7) mam kilka plików tekstowych (jeśli są to pliki skryptowe SQL).
Po otwarciu za pomocą Notepad ++ , w menu „Kodowanie” niektóre z nich mają kodowanie „UCS-2 Little Endian”, a niektóre „UTF-8 bez BOM”.
Jaka jest tutaj różnica? Wszystkie wydają się być całkowicie poprawnymi skryptami. Jak mogę określić, jakie kodowania ma plik bez Notepad ++?
enca
i chardet
dla systemów POSIX.
iconv
w szczególności jest przydatny do tego celu. Zasadniczo iterujesz uszkodzone ciągi znaków / tekst przez różne kodowania, aby zobaczyć, który z nich działa. Wygrywasz, gdy postacie nie są już zepsute. Chciałbym tutaj odpowiedzieć, podając programowy przykład. Ale to niestety pytanie chronione.
chardet
lub chardetect
nie jest dostępny w twoim systemie, możesz zainstalować pakiet za pomocą menedżera pakietów (np. apt search chardet
- na Ubuntu / debian pakiet jest zwykle wywoływany python-chardet
lub python3-chardet
) lub przez pip z pip install chardet
(lub pip install cchardet
dla szybszej wersji zoptymalizowanej pod kątem c).