संक्षिप्त उत्तर: संभावना है कि आपकी टेक्स्ट फ़ाइल "एएनएसआई" -कोडेड नहीं है, लेकिन utf-8 है।
लांग जवाब:
पहले, शब्द "एएनएसआई" (Windows पर) एक निश्चित एन्कोडिंग मतलब यह नहीं है; इसका मतलब आपकी भाषा सेटिंग्स पर निर्भर करता है। उदाहरण के लिए, पश्चिमी यूरोप और यूएसए में, यह आमतौर पर Windows-1252 (ISO/IEC 8859-1, also known as latin-1 का एक संस्करण), जापान में, यह SHift JIS है, और अरबी देशों में, यह ISO/IEC_8859-6 है।
यदि आप विंडोज के गैर-अरबी संस्करण का उपयोग कर रहे हैं और हेव ने अपनी भाषा सेटिंग्स नहीं बदली हैं, और जब आप इसे नोटपैड में खोलते हैं तो फ़ाइल में अरबी अक्षरों को देख सकते हैं, तो यह निश्चित रूप से इनमें से किसी भी एएनएसआई एन्कोडिंग में नहीं है । इसके बजाए, यह शायद Unicode है।
ध्यान दें कि मेरा मतलब "यूनिकोड" नहीं है, जो विंडोज़ पर आमतौर पर UTF-16LE का मतलब है। यह UTF-8 भी हो सकता है। दोनों एन्कोडिंग हैं जो वर्तमान में यूनिकोड में परिभाषित सभी 100,000+ अक्षरों को एन्कोड कर सकते हैं, लेकिन वे इसे विभिन्न तरीकों से करते हैं। दोनों variable length encodings हैं, जिसका अर्थ है कि सभी वर्ण बिट्स की संख्या का उपयोग करके एन्कोड नहीं किए गए हैं।
यूटीएफ -8 में, प्रत्येक चरित्र को एक से चार बाइट्स के रूप में एन्कोड किया जाता है। एन्कोडिंग को चुना गया है कि ASCII वर्ण एक बाइट में एन्कोड किए गए हैं।
यूटीएफ -16 में, प्रत्येक चरित्र को दो चार बाइट के रूप में एन्कोड किया जाता है। इस एन्कोडिंग का मूल रूप से आविष्कार किया गया है जब यूनिकोड में 64K से कम वर्ण थे, और इसलिए एक प्रत्येक 16-बिट शब्द में प्रत्येक चरित्र को एन्कोड कर सकता था।बाद में, जब यह स्पष्ट हो गया कि यूनिकोड को 64 के सीमा से आगे बढ़ना होगा, तो एक योजना का आविष्कार किया गया था जहां 0xD800-0xDFFF श्रेणी में शब्दों के जोड़े का उपयोग पहले 64K (शून्य 0x800) वर्णों के बाहर वर्णों का प्रतिनिधित्व करने के लिए किया जाता है।
क्या फाइल में वास्तव में देखने के लिए, एक हेक्स संपादक में खोलें:
- पहले दो बाइट्स एफएफ एफई रखते हैं, तो यह संभावना UTF-16LE (थोड़ा endian)
- तो है पहले दो बाइट्स एफई एफएफ कर रहे हैं, तो यह संभावना UTF-16BE (बड़ा endian, विंडोज पर संभावना नहीं)
- है पहले तीन बाइट्स एफई बी बी बीएफ रखते हैं, तो यह संभावना UTF-8
- है आप एक बहुत देखते हैं, तो 00 बाइट्स की संभावना है, यह संभवतः यूटीएफ -16 (या यूटीएफ -32, यदि आप 00 बाइट्स के जोड़े देखते हैं)
- यदि अरबी वर्ण एक बाइट पर कब्जा करते हैं, तो यह संभवतः आईएसओ -885 9-6 (उदा। शा डी 5 होगा)।
- यदि अरबी वर्ण एकाधिक बाइट्स पर कब्जा करते हैं, तो यह संभवतः यूटीएफ -8 (उदाहरण के लिए डी 8 बी 4 होगा)।
क्या आपके पास लिनक्स तक पहुंच है? यदि हां, तो 'file' कमांड क्या कहता है? –
नहीं, मेरे पास लिनक्स तक पहुंच नहीं है ... यदि आप हालांकि करते हैं और मदद करना चाहते हैं, तो कृपया मेरी फ़ाइल को संस्करण 02 में दिए गए लिंक से डाउनलोड करें और मुझे बताएं कि आपको क्या मिलता है। आपके सहयोग की सराहना। –
@ जोओओ 'फाइल' इस फाइल पर बीएस पैदा करता है। :-( –