Zauważ, że w UTF-8 nie ma BOM: jest to cecha UTF-16. Plik UTF-8 może zaczynać się od znaku U + FEFF, ale w takim przypadku jest to przestrzeń o zerowej szerokości.
Gilles „SO - przestań być zły”,
Odpowiedzi:
30
filepoinformuje Cię, czy istnieje BOM. Możesz przetestować:
Dziękuję za odpowiedź. Moja filewersja jest file-5.09i wynik był /dev/stdin: ASCII text. Czy to zależy od wersji file?
ironsand
@Tetsu Testowałem z file5.04 (wyciskanie Debiana) i było OK. Nawet w 2007 r., Zgodnie z dziennikiem zmian (nie testowano). Ale możesz wykonać test, który podałem w mojej odpowiedzi.
vinc17,
Właśnie zainstalowałem language-pack-jaz apt, wtedy twój przykład działa idealnie. Dzięki za pomoc!
ironsand
4
Jeśli wykonasz stat fileName, powinno ci dać dokładnie trzy znaki. Kiedy otworzyłem plik w edytorze, nic nie widziałem. Więc zauważenie, że rozmiar pliku wynosił 3, dało mi jasność, że ma BOM.
Odpowiedzi:
file
poinformuje Cię, czy istnieje BOM. Możesz przetestować:Uwaga: zgodnie z
file
dziennikiem zmian ta funkcja istniała już w 2007 roku. Powinno to działać na każdym bieżącym komputerze.źródło
file
wersja jestfile-5.09
i wynik był/dev/stdin: ASCII text
. Czy to zależy od wersjifile
?file
5.04 (wyciskanie Debiana) i było OK. Nawet w 2007 r., Zgodnie z dziennikiem zmian (nie testowano). Ale możesz wykonać test, który podałem w mojej odpowiedzi.language-pack-ja
zapt
, wtedy twój przykład działa idealnie. Dzięki za pomoc!Jeśli wykonasz
stat fileName
, powinno ci dać dokładnie trzy znaki. Kiedy otworzyłem plik w edytorze, nic nie widziałem. Więc zauważenie, że rozmiar pliku wynosił 3, dało mi jasność, że ma BOM.Również post tutaj był pomocny w moim przypadku.
źródło