सभी UTF-16 एन्कोडेड फ़ाइलों को विंडोज पर खोजें


6

क्या विंडोज (कमांड लाइन, गुई, स्क्रिप्ट, इत्यादि) के लिए एक उपकरण उपलब्ध है जो किसी निर्देशिका को पुनर्जीवित कर सकता है और सभी फाइलों को यूटीएफ -16 के रूप में पहचान सकता है?


आम तौर पर बोलना स्वचालित रूप से और बिना किसी त्रुटि के पाठ फ़ाइल के एन्कोडिंग का पता लगाने का कोई तरीका है। यह कहने के बाद कि: यदि सामग्री वास्तव में ASCII श्रेणी (या अधिकतर उस सीमा से) से वर्ण है तो फ़ाइलों के लिए जाँच करना जहाँ हर दूसरी बाइट 0एक अच्छी शुरुआत है।
जोकिम सॉयर

1
@ जोशीम: मुझे लगता है कि बड़ी फ़ाइलों के लिए डिटेक्शन एरर नगण्य होना चाहिए। "बुश ने तथ्यों को छुपाया" जैसा कुछ होना असंभव है क्योंकि चरित्र की गिनती काफी बड़ी है।
फिलीपिंस

1
@ फिलीप: मुझे इस विशेष मामले का भी पता नहीं था। धन्यवाद! लेकिन अपेक्षा की जाने वाली त्रुटियों की मात्रा आपकी फ़ाइलों की वास्तविक सामग्री पर बहुत अधिक निर्भर करती है : यदि यह सभी मूल रूप से अंग्रेजी ASCII पाठ है, तो पता लगाने की दर बहुत अच्छी होगी (एकदम सही या सही, मुझे लगता है)। लेकिन अगर आपके पास बहुत सारे द्विआधारी डेटा के अलावा UTF-16 चीनी, अरबी, स्वाहिली और हिंदू ग्रंथों को कूटबद्ध करता है, तो यह बहुत बुरा होगा।
जोकिम सॉयर

2
@ जोचिम: सहमत। मेरे अनुभव से, बिना बीओएम के यूटीएफ -16 फाइलें अक्सर विंडोज सिस्टम टूल्स (इंस्टॉलर स्क्रिप्ट, शायद रजिस्ट्री एडिटर) द्वारा उत्पन्न होती हैं क्योंकि ऐसी फाइल अनिवार्य रूप से एक यूटीएफ -16 स्ट्रिंग की मेमोरी डंप होती है। ऐसी फ़ाइलों में अक्सर बहुत सारे ASCII मार्कअप होते हैं जो उन्हें पहचानने में सरल बनाते हैं। दूसरा रास्ता गोल (यह तय करना कि क्या एक वैध UTF-16 फ़ाइल वास्तव में UTF-16 है) निश्चित रूप से बहुत कठिन है। हो सकता है कि कोई परीक्षण कर सकता है कि क्या फ़ाइल के बड़े हिस्से एक स्क्रिप्ट से संबंधित हैं, चाहे UTF-16 CRLF क्रम हो, आदि
फिलिप

जवाबों:


2

यह उपकरण आपको फ़ाइल एन्कोडिंग प्रकार की मानक जानकारी जैसे खोज पैटर्न और फ़ाइल पथ का पता लगाने की अनुमति देता है:

फ़ाइल एन्कोडिंग परीक्षक

फ़ाइल एन्कोडिंग परीक्षक एक जीयूआई उपकरण है जो आपको एक या अधिक फ़ाइलों के पाठ एन्कोडिंग को मान्य करने की अनुमति देता है। उपकरण सभी चयनित फ़ाइलों या केवल उन फ़ाइलों के लिए एन्कोडिंग प्रदर्शित कर सकता है, जिनमें आपके द्वारा निर्दिष्ट एनकोडिंग नहीं है।

यहां छवि विवरण दर्ज करें

मैंने स्वयं इसका उपयोग नहीं किया है, इसलिए आप इसे जांचना चाह सकते हैं।


1

एक धीमी गति से तरीका यह होगा कि आप किसी भी रूपांतरण उपयोगिता को ले सकते हैं और इसे एक निर्देशिका में सभी फाइलों के खिलाफ चला सकते हैं। उन फ़ाइलों को सफलतापूर्वक UTF-16 से दूसरे स्वरूप में परिवर्तित कर दिया जाता है, जो आपके लिए आवश्यक हैं। उस कार्य के लिए आप कैरेक्टर सेट कन्वर्टर जैसे उपलब्ध टूल चुन सकते हैं ।

या आप C ++ / Win32 में यूनिकोड UTF-16 और UTF-8 के बीच इस रूपांतरण से C ++ कोड स्निपेट का उपयोग करके इस तरह के टूल को लिख सकते हैं । कस्टम टूल को पहली रूपांतरण त्रुटि और फ़ाइल में परिवर्तित बफर सहेजने के लिए अनुकूलित किया जा सकता है।


1

BOM के साथ UTF-16 फ़ाइलों के लिए - PowerShell कमांड

gci . -Include *.txt -Recurse | `
% { $c = gc $_.FullName -TotalCount 2 -Encoding Byte; `
    if ( $c.Length -gt 0 -and `
         (($c[0] -eq 255 -and $c[1] -eq 254) -or `
         ($c[0] -eq 254 -and $c[1] -eq 255)) `
        ) {$_.FullName} `
  }

0

एक बनाना मुश्किल नहीं होगा, हर फाइल के पहले दो बाइट्स पढ़ें और देखें कि क्या वे क्रमशः एफएफ एफए (विंडोज़) पर सेट हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.