Dosyanın utf-8 metninde ürün ağacı olup olmadığını kontrol etme


18

Bir utf-8 metin dosyasının komut satırından BOM olup olmadığını nasıl kontrol edebilirim?

filekomutu bana gösteriyor UTF-8 Unicode text.

Ama bilmiyorum dosyada BOM yok demektir.

Kullanıyorum Ubuntu 12.04.


UTF-8'de ürün ağacı olmadığını unutmayın: bu UTF-16'nın bir özelliğidir. UTF-8 dosyası U + FEFF karakteriyle başlayabilir, ancak bu durumda sıfır genişlikli bir boşluktur.
Gilles 'SO- kötü olmayı bırak'

Yanıtlar:


30

filesize bir Malzeme Listesi olup olmadığını söyleyecektir. Test edebilirsiniz:

$ /usr/bin/printf "\ufeff...\n" | file -
/dev/stdin: UTF-8 Unicode (with BOM) text

Not: filechangelog'a göre , bu özellik 2007'de zaten vardı. Bu, mevcut herhangi bir makinede çalışmalıdır.


1
Cevap için teşekkürler. Benim filesürümüm file-5.09ve sonuç oldu /dev/stdin: ASCII text. Sürümüne bağlı mı file?
ironsand

@Tetsu file5.04 (Debian squeeze) ile test ettim ve sorun yok. Değişim günlüğüne göre (test edilmedi) 2007'de bile. Ama cevabımda verdiğim testi yapabilirsiniz.
vinc17

Sadece yüklü language-pack-jagelen aptsenin örneğin mükemmel çalışıyor, sonra. Yardımın için teşekkürler!
ironsand

4

Eğer yürütürseniz stat fileNamesize üç karakteri tam olarak vermelidir. Dosyayı düzenleyicide açtığımda hiçbir şey göremedim. Böylece dosya boyutu 3 olduğunu fark bana bir malzeme var netlik verdi.

Ayrıca, post burada benim durumumda helful.

hexdump -n 3 -C 2.txt
00000000 ef bb bf
ef bb bf // YES
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.