file
Komut kodlaması hakkında "en iyi tahmin" yapıyor. Kodlama hakkında bilgi yazdırmaya -i
zorlamak file
için parametreyi kullanın .
gösteri:
$ file -i *
umlaut-iso88591.txt: text/plain; charset=iso-8859-1
umlaut-utf16.txt: text/plain; charset=utf-16le
umlaut-utf8.txt: text/plain; charset=utf-8
Dosyaları nasıl oluşturduğum:
$ echo ä > umlaut-utf8.txt
Günümüzde her şey utf-8. Ama kendini ikna et:
$ hexdump -C umlaut-utf8.txt
00000000 c3 a4 0a |...|
00000003
Https://en.wikipedia.org/wiki/Ä#Computer_encoding ile karşılaştırın
Diğer kodlamalara dönüştür:
$ iconv -f utf8 -t iso88591 umlaut-utf8.txt > umlaut-iso88591.txt
$ iconv -f utf8 -t utf16 umlaut-utf8.txt > umlaut-utf16.txt
Altıgen dökümü kontrol et:
$ hexdump -C umlaut-iso88591.txt
00000000 e4 0a |..|
00000002
$ hexdump -C umlaut-utf16.txt
00000000 ff fe e4 00 0a 00 |......|
00000006
Üçünü de karıştırarak "geçersiz" bir şey oluşturun:
$ cat umlaut-iso88591.txt umlaut-utf8.txt umlaut-utf16.txt > umlaut-mixed.txt
Ne file
diyor:
$ file -i *
umlaut-iso88591.txt: text/plain; charset=iso-8859-1
umlaut-mixed.txt: application/octet-stream; charset=binary
umlaut-utf16.txt: text/plain; charset=utf-16le
umlaut-utf8.txt: text/plain; charset=utf-8
olmadan -i
:
$ file *
umlaut-iso88591.txt: ISO-8859 text
umlaut-mixed.txt: data
umlaut-utf16.txt: Little-endian UTF-16 Unicode text, with no line terminators
umlaut-utf8.txt: UTF-8 Unicode text
file
Komut "geçerli" veya "geçersiz" nin hiçbir fikri yok. Sadece bazı baytları görür ve kodlamanın ne olacağını tahmin etmeye çalışır. İnsanlar olarak, bir dosyanın "yanlış" kodlamada bazı ümitlere sahip bir metin dosyası olduğunu anlayabiliriz. Fakat bilgisayar olarak bir çeşit yapay zekaya ihtiyaç duyacaktır.
Birisi, sezgisel mirasının file
bir çeşit yapay zeka olduğunu iddia edebilir . Ancak, öyle olsa bile, çok sınırlı bir tanesi.
İşte file
komut hakkında daha fazla bilgi : http://www.linfo.org/file_command.html