[TLUG] encoding

Maciej Jan Głowacki tlug at linux.gda.pl
Fri, 8 Apr 2005 23:35:31 +0200 (CEST)


On Fri, 8 Apr 2005, Andrzej Sawula wrote:

> >jak rozpoznać automatycznie kodowanie polskich znaków pliku tekstowe=
go?
 
> W przypadku ogólnym się nie da (a przynajmniej nie bez eliminowania=
 
> poszczególnych możliwości po jednej). file może co najwyżej okr=
eślić, że 
> to tekst wykorzystujący pełne (8-bitowe) ASCII, ale strony kodowej ni=
e 
> poda. Można próbować to zrobić, znając z góry język i spraw=
dzając parę 
> częstych słów ze słownika.

Fragment man file, wersja linuxowa:

Jeśli plik nie pasuje do żadnego z wpisów w pliku liczb magicznych,
dokonywane jest sprawdzenie czy jest to plik tekstowy. Rozpoznawane są
zestawy znaków: ASCII, ISO-8859-x, 8-bitowe rozszerzenia ASCII niezgodne
z ISO (używane w systemach Macintosh i IBM PC), Unicode w kodowaniu UTF-8,
Unicode w kodowaniu UTF-16 oraz EBCDIC. Sprawdzane są zakresy i ciągi 
bajtów, które stanowią drukowalny tekst w każdym z tych zestawów znaków.  
Jeśli plik przejdzie któryś z tych testów, zgłaszany jest odpowiadający mu 
zestaw znaków. Pliki w ASCII, ISO-8859-x, UTF-8 oraz w rozszerzeniach 
ASCII są identyfikowane jako ,,text'', gdyż są one na ogół czytelne na 
dowolnym terminalu; pliki w UTF-16 i EBCDIC stanowią jedynie ,,character 
data'' (dane znakowe), gdyż jeśli zawierają one tekst, tekst ten wymaga 
przed przeczytaniem konwersji. Dodatkowo, file będzie próbował określić  
inne charakterystyki plików tekstowych. Jeśli wiersze są zakończone 
znakami CR, CRLF lub NEL, zamiast standardowego uniksowego LF, zostanie to 
zgłoszone. Zostaną również zidentyfikowane pliki zawierające wbudowane 
sekwencje unikowe lub wielokrotnego drukowania.

Pozdrawiam -- Mass.

-- 
MOVE ME VOOYOO!
** Maciej Jan Głowacki <m.glowacki@poczta.gdynia.pl> Linux User #231463 **