फ़ाइल खराब नहीं, पढ़ना गलत हुआ
सबटाइटल फ़ाइल में बाइट्स स्टोर हैं। बाइट्स को अक्षर बनाने के लिए पता होना चाहिए कि वे किस एन्कोडिंग में लिखे गए — यह कदम गलत हुआ तो गड़बड़ी मिलती है। फ़ाइल का एक बाइट भी कम नहीं हुआ; दूसरी एन्कोडिंग से दोबारा पढ़ें, अक्षर वापस आ जाते हैं।
यानी दो अलग काम हैं: मूल एन्कोडिंग पहचानना, और प्लेयर पहचान सके ऐसी एन्कोडिंग में सहेजना। पहला आज़मा-आज़माकर स्कोर से होता है, दूसरा "इस रूप में सहेजें" से। दोनों अलग समस्या ठीक करते हैं।
पाँच रूप, पाँच कारण
गड़बड़ी अचानक नहीं बनती; उसका रूप कारण बता देता है:
- मात्राओं वाले अक्षरों की कतारें (`ä½ å¥½`): UTF-8 का CJK पाठ एक-बाइट एन्कोडिंग मानकर पढ़ा गया — UTF-8 में एक CJK अक्षर तीन बाइट का होता है, और एक-बाइट पढ़ने पर हर बाइट अपना एक अक्षर बन जाता है
- CJK अक्षरों की कतारें, पर एक भी सामान्य नहीं: UTF-8 को GBK मानकर पढ़ा गया — बाइट्स जोड़ों में बँट गए और हर जोड़ा किसी दुर्लभ अक्षर पर गया
- मुद्रा और गणित के चिह्नों का ढेर: बाइट्स चिह्न-क्षेत्र में गिरे — आम तौर पर Mac Roman या Latin-1 किस्म मानकर पढ़े जाने पर
- नियंत्रण अक्षर घुस आए: बाइट्स अदृश्य नियंत्रण-क्षेत्र में गिरे, स्क्रीन पर खाली जगह या बॉक्स दिखते हैं
- बॉक्स-जैसा प्रश्नचिह्न `�`: यह प्रतिस्थापन अक्षर है, गड़बड़ी नहीं — इसका मतलब है "यहाँ एक अक्षर था, और पढ़ते समय वह गिर चुका था"

प्रतिस्थापन अक्षर ठीक क्यों नहीं हो सकता
प्रतिस्थापन अक्षर वह सीमा-रेखा है। `�` का मतलब है कि बाइट्स किसी पहले के कदम में ही गिर गए थे (आम तौर पर किसी प्रोग्राम ने पढ़कर दोबारा सहेजा), और जो गिरा उसका कोई रिकॉर्ड नहीं। तब उल्टा अनुमान लगाने का कोई आधार नहीं — इसे कोई ठीक नहीं कर सकता।
इसलिए सुधार पेज दो हालात अलग-अलग संभालता है: फ़ाइल अपलोड करें तो मूल बाइट्स सुरक्षित हैं, एक-एक एन्कोडिंग आज़माई जा सकती है; पेस्ट किए पाठ में प्रतिस्थापन अक्षर हो तो साफ़ कहा जाता है — "ठीक नहीं किया जा सकता, मूल फ़ाइल अपलोड करें"।
इसका उल्टा भी होता है: पाठ बिलकुल सामान्य पढ़ा जा रहा है, पर प्लेयर में फिर भी गड़बड़ी। यह फ़ाइल की गलती नहीं, बल्कि प्लेयर की गलत एन्कोडिंग है। फ़ाइल बदलना बेकार है; BOM वाले UTF-8 या GBK की एक कॉपी सहेजकर उसे दें।

ठीक करते समय क्या तुलना हो रही है
टूल हर संभव एन्कोडिंग आज़माता है, फिर हर नतीजे को स्कोर देता है: सामान्य अक्षर कितने, मात्राओं की कतारें हैं या नहीं, चिह्नों की कतारें हैं या नहीं, CJK अक्षर कतार में दुर्लभ तो नहीं। सबसे ऊँचा स्कोर सबसे ऊपर।
स्कोर साफ़ तौर पर बेहतर न हो तो सुझाव नहीं दिया जाता — "यह सामान्य पढ़ा जा रहा है" बताना बेहतर है, न कि कुछ-कुछ भाषा जैसा नतीजा थमाना। दो बार गलती से गुज़रे हुए पाठ के शीर्ष उम्मीदवारों पर एक और उल्टा अनुमान लगाया जाता है।

सही एन्कोडिंग में सहेजें, तभी पूरा हुआ
ठीक किया हुआ पाठ अब प्लेयर पहचान सके ऐसी एन्कोडिंग में सहेजना है। Windows के प्लेयर अक्सर BOM से एन्कोडिंग पहचानते हैं, इसलिए BOM वाले UTF-8 में सहेजना सबसे आसान; पुराने डिवाइस या घरेलू प्लेयर GBK पहचानते हैं। विकल्प: UTF-8, UTF-8 (BOM सहित), GBK, Big5, Shift_JIS, EUC-KR; न समाए तो बदलने को कहा जाएगा (जैसे GBK में कोरियाई नहीं समाती)।

संबंधित टूल और गाइड
पूरा तरीका — गड़बड़ अक्षर कैसे ठीक करें; SRT फ़ाइल में आख़िर है क्या — SRT फ़ाइल में क्या लिखा है; एन्कोडिंग ठीक पर सामग्री गंदी (विज्ञापन-वॉटरमार्क, बधिर-संकेत) — सबटाइटल सफाई।