Witam, chciałbym się upewnić w kilku sprawach.
Piszę banalny program, który ma być konwerterem plików tekstowych dla różnych, nieraz dziwnych kodowań (np. Mazovia). I ma automatycznie rozpoznawać kodowanie w jakim zapisany jest plik.
Dla każdego obsługiwanego kodowania mam tablicę dozwolonych polskich znaków.
I robię to tak:
dla każdego kodowania (każdej tablicy dozwolonych bajtów)
dla każdego bajtu strumienia wejściowego o wartości większej niż 0x7F
jeśli wartość tego bajtu NIE znajduje się w tablicy bajtów poprawnej dla kodowania
znaczy to, że to na pewno nie jest to kodowanie, sprawdzanie jest przerywane i rozpoczynane jest sprawdzanie dla następnego kodowania
Doszedłem do wniosku, że jest to rozwiązanie lepsze niż liczenie ilości pasujących w pliku znaków dla każdego kodowania, a następnie wybranie tego "najbardziej pasującego".
W zasadzie to działa, ale:
- Czy to jest dobrze? Czy można szybciej?
- Sprawdzane są jedynie polskie znaki (to wymóg odgórny). A np. dla Win1257 i Latin7 polskie kody są identyczne, dlatego sprawdzanie zwraca oba wyniki. Czy nie lepiej byłoby wówczas sprawdzić także pozostałych znaków?
Z góry dzięki.