Ustalenie kodowania znaków

0

Cześć,
wiem, że nie ma 100% metody na rozpoznanie jak zakodowane są znaki w pliku (przynajmniej w plikach bez BOM).
Chciałem się więc zapytać jak wy sobie z tym radzicie? Czy korzystacie z jakiś bibliotek do rozpoznawania kodowania? Możecie coś polecić? Głównie zależy mi na rozpoznawaniu polskich formatów takich jak windows-1250, mazovia, UTF-8 itd. (czyli tam, gdzie występują polskie znaki).

W przypadku kodowania znaków na jednym bajcie rozpoznanie wydaje się całkiem proste - wystarczy zliczać polskie znaki i odpowiednio je zliczać - wygrywa ten format, który ma najwięcej punktów. Gorzej z kodowaniem na wielu bajtach takich jak UTF-8.

1

Zależy jakie i do czego te kodowania są ci potrzebne: czy potrzebna ci ta Mazovia, która wyszła z użycia gdzieś w połowie lat 90-tych?

Ja bym zrobił tak:

  1. UTF-8 z BOM - wiadomo. Trzy początkowe bajty pliku.
  2. UTF-8 bez BOM - można zwalidować tekst (albo jakiś jego początek) pod kątem tego czy w ogóle jest poprawnym UTF-8.
  3. Jeśli to nie może być UTF-8 to zakładamy że to bieżące kodowanie używane w systemie (czyli 1250 jeśli jest ustawione polskie).

Resztę olać, przynajmniej jeśli o automatyczną detekcję chodzi.

0

Dzięki @Azarien
Z tym wyjściem mazovii to bym tak uważał, bo co jakiś czas spotykam się z tym kodowaniem. Zdaje się, że niektóre banki umożliwiają zapis wyciągu bankowego właśnie z tym kodowaniem (chociaż fakt, że to rzadkość).
Odnośnie walidacji to słuszna uwaga.
Ogólnie to zależało mi na próbie rozpoznania:
Windows-1250, Latin II, Mazovia, ISO-8859-2, UTF-8.

Wydaje mi się, że już ogarnąłem temat :) W zasadzie to próbuję znaleźć jak najwięcej polskich znaków oddzielnie dla każdego kodowania i wygrywa to, które znalazło ich najwięcej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0