कैसे चेक करें कि फ़ाइल में utf-8 टेक्स्ट में BOM है या नहीं


18

यदि utf-8 पाठ फ़ाइल में कमांड लाइन से BOM है तो मैं कैसे जांच सकता हूं?

fileकमांड मुझे दिखाता है UTF-8 Unicode text

लेकिन मुझे नहीं पता कि इसका मतलब है कि फ़ाइल में कोई BOM नहीं है।

मैं उपयोग कर रहा हूं Ubuntu 12.04


ध्यान दें कि UTF-8 में कोई BOM नहीं है: यह UTF-16 की एक विशेषता है। एक UTF-8 फाइल U + FEFF चरित्र के साथ शुरू हो सकती है, लेकिन उस स्थिति में यह एक शून्य-चौड़ाई वाला स्थान है।
गाइल्स 'एसओ- बुराई को रोकना'

जवाबों:


30

fileअगर कोई बीओएम है तो आपको बताएगा। आप परीक्षण कर सकते हैं:

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

नोट: fileचैंज के अनुसार , यह सुविधा पहले से ही 2007 में मौजूद थी। इसलिए, इसे किसी भी वर्तमान मशीन पर काम करना चाहिए।


1
उत्तर के लिए धन्यवाद। मेरा fileसंस्करण है file-5.09और परिणाम था /dev/stdin: ASCII text। क्या यह संस्करण पर निर्भर करता है file?
ironsand

@ टेट्सू I ने file5.04 (डेबियन निचोड़) के साथ परीक्षण किया और यह ठीक था। 2007 में भी, चैंज के अनुसार (परीक्षण नहीं किया गया)। लेकिन आप अपने उत्तर में मेरे द्वारा दी गई परीक्षा कर सकते हैं।
vinc17 3

मैंने अभी से स्थापित किया language-pack-jaहै apt, तो आपका उदाहरण पूरी तरह से काम करता है। आपकी सहायताके लिए धन्यवाद!
ironsand

4

यदि आप stat fileNameइसे क्रियान्वित करते हैं, तो आपको तीनों अक्षर सही देने चाहिए। जब मैंने संपादक में फ़ाइल खोली, तो मैं कुछ भी देखने में असमर्थ था। तो यह देखते हुए कि फ़ाइल का आकार 3 था, मुझे स्पष्टता दी कि इसमें BOM है।

साथ ही, यहां की पोस्ट मेरे मामले में मददगार थी।

hexdump -n 3 -C 2.txt
00000000 ef bb bf
ef bb bf // YES
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.