چرا زیرنویس بههم میریزد؟
فایل زیرنویس هیچ اطلاعاتی درباره کدگذاری خود ندارد. بیشتر زیرنویسهای فارسی در اینترنت با Windows-1256 ذخیره شدهاند، در حالی که تلویزیونهای هوشمند، اپلیکیشنهای پخش و سرورهای رسانه UTF-8 انتظار دارند. پس فایل سالم است و حروف عجیب فقط روی صفحه دیده میشوند. برای فایلهای دیگر با این کدگذاری تبدیل Windows-1256 به UTF-8 را ببینید.
حروف عجیب
1 00:00:01,000 --> 00:00:03,500 ÓáÇã¡ ÍÇáÊ ÎæÈå¿ 2 00:00:04,000 --> 00:00:06,000 ÎæÈã¡ ããäæä. ÔãÇ ÎæÈíÏ¿
پس از اصلاح
1 00:00:01,000 --> 00:00:03,500 سلام، حالت خوبه؟ 2 00:00:04,000 --> 00:00:06,000 خوبم، ممنون. شما خوبید؟
این نشانهها چه معنایی دارند؟
ÒíÑäæíÓبه جایزیرنویس: زیرنویس Windows-1256 در پخشکنندهای با کدگذاری غربی. رایجترین خطا در فایلهای SRT فارسی.زیرنویس: زیرنویس UTF-8 که پخشکننده آن را Windows-1252 خوانده است.ط²غŒط±ظ†ظˆغŒط³: زیرنویس UTF-8 که یک برنامه قدیمی آن را با Windows-1256 خوانده است.����: زیرنویس Windows-1256 در پخشکنندهای که UTF-8 انتظار دارد، مثل بیشتر تلویزیونهای هوشمند. حروف هنوز در فایل اصلی هستند.
در سه حالت اول میتوانید متن خراب را مستقیم در کادر بچسبانید. اما با � فایل زیرنویس اصلی را بکشید، چون متن کپیشده از صفحه دیگر حروف را ندارد.
روش درست کردن زیرنویس
- فایل زیرنویس را در کادر بالا بکشید و رها کنید.
- Mojibuster کدگذاری را تشخیص میدهد و حروف خراب را اصلاح میکند؛ «ي» و «ك» عربی فایلهای قدیمی هم به «ی» و «ک» فارسی تبدیل میشوند.
- فایل را دانلود کنید و به جای زیرنویس قبلی کنار فیلم بگذارید. نام فایل زیرنویس باید با نام فیلم یکی باشد.
زمانبندیها، شمارهها و خطوط خالی دقیقاً همانطور میمانند.
نکتههایی برای پخشکنندهها
- VLC: در تنظیمات زیرنویس میتوانید کدگذاری پیشفرض را انتخاب کنید. پس از تبدیل، UTF-8 کافی است.
- KMPlayer و PotPlayer: در تنظیمات زیرنویس گزینهای برای کدگذاری (Encoding یا Charset) هست. برای فایلهای قدیمی Arabic (Windows-1256) را انتخاب کنید، یا فایل را یک بار به UTF-8 تبدیل کنید.
- MX Player در اندروید: در تنظیمات زیرنویس گزینه کدگذاری نویسهها وجود دارد. پس از تبدیل، UTF-8 را انتخاب کنید.
- تلویزیونهای هوشمند، Kodi، Plex و Jellyfin: فایل UTF-8 بدون BOM را بهتر از همه میخوانند.
- فایلهای ASS و SUB: پسوند
.assیا.subرا موقتاً به.txtتغییر دهید، فایل را درست کنید و پسوند را برگردانید.
علامتهای جابهجا و حروف جدا از هم
گاهی نقطه یا علامت سؤال به جای انتهای خط در ابتدای آن دیده میشود، یا اعداد داخل جمله جابهجا میشوند. این مشکل کدگذاری نیست؛ پخشکننده خط را از چپ به راست نمایش میدهد. Mojibuster اینها را تغییر نمیدهد و فقط حروف را اصلاح میکند.
راهحل در پخشکننده یا برنامه ویرایش زیرنویس است. برنامههایی مانند Subtitle Edit ابزاری برای اصلاح جهت متن راستبهچپ دارند که نشانههای جهت نامرئی اضافه میکند. اگر حروف جدا از هم و نچسبیده دیده شوند، فونت پخشکننده از فارسی پشتیبانی نمیکند؛ این هم مشکل فایل نیست.
پرسشهای متداول
آیا زمانبندی زیرنویس تغییر میکند؟
خیر. فقط حروف خراب اصلاح میشوند و زمانبندیها، شمارهها و خطوط خالی همانطور میمانند.
آیا زیرنویس به BOM نیاز دارد؟
خیر. بیشتر پخشکنندهها UTF-8 بدون BOM را بهتر میخوانند، برای همین این گزینه برای فایلهای SRT و VTT از پیش غیرفعال است.
چرا زیرنویس روی کامپیوتر درست است ولی روی تلویزیون نه؟
برنامه کامپیوتر Windows-1256 را تشخیص میدهد یا روی ویندوز فارسی بهطور پیشفرض از آن استفاده میکند، اما تلویزیون UTF-8 انتظار دارد. فایل را یک بار به UTF-8 تبدیل کنید تا روی هر دو درست نمایش داده شود.
به جای حروف علامت سؤال دیده میشود. قابل اصلاح است؟
اگر علامتهای سؤال در خود فایل ذخیره شده باشند، حروف از دست رفتهاند. Mojibuster تعداد آنها را نشان میدهد و در این حالت به زیرنویس دیگری نیاز دارید. تفاوت حروف خراب و از دست رفته در موجیباکه چیست؟ توضیح داده شده است.
میتوانم زیرنویسهای یک سریال کامل را یکجا درست کنم؟
فعلاً هر بار یک فایل اصلاح میشود که فقط چند ثانیه طول میکشد. برای تبدیل تعداد زیادی فایل میتوانید از خط فرمان استفاده کنید؛ تبدیل Windows-1256 به UTF-8 را ببینید.