درست کردن زیرنویس فارسی به‌هم‌ریخته

تلویزیون هوشمند، VLC یا اپلیکیشن، زیرنویس را به شکل ÒíÑäæíÓ یا علامت سؤال به جای حروف فارسی نشان می‌دهد؟ زیرنویس احتمالاً با Windows-1256 ذخیره شده است. فایل را اینجا بکشید تا Mojibuster آن را با UTF-8 ذخیره کند.

با متن و این فایل‌ها کار می‌کند:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

مثل خروجی اکسل، نسخه پشتیبان پایگاه داده، زیرنویس و کد وب‌سایت.

اصلاح

  1. فایل را بکشید یا متن را بچسبانید
  2. اصلاح خودکار انجام می‌شود
  3. نتیجه را کپی یا دانلود کنید
یا فایل را اینجا بکشید
  • بدون آپلود. فایل‌ها مستقیم داخل مرورگر شما اصلاح می‌شوند و هرگز از دستگاهتان خارج نمی‌شوند.

  • سرور در اتحادیه اروپا. Mojibuster روی سروری در فنلاند (اتحادیه اروپا) اجرا می‌شود؛ بنابراین مقررات عمومی حفاظت از داده‌ها (GDPR) برقرار است. متن مقررات (EUR-Lex، به انگلیسی)

چرا زیرنویس به‌هم می‌ریزد؟

فایل زیرنویس هیچ اطلاعاتی درباره کدگذاری خود ندارد. بیشتر زیرنویس‌های فارسی در اینترنت با Windows-1256 ذخیره شده‌اند، در حالی که تلویزیون‌های هوشمند، اپلیکیشن‌های پخش و سرورهای رسانه UTF-8 انتظار دارند. پس فایل سالم است و حروف عجیب فقط روی صفحه دیده می‌شوند. برای فایل‌های دیگر با این کدگذاری تبدیل Windows-1256 به UTF-8 را ببینید.

زیرنویس Windows-1256 در پخش‌کننده‌ای با تنظیمات غربی

حروف عجیب

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 انتظار دارد، مثل بیشتر تلویزیون‌های هوشمند. حروف هنوز در فایل اصلی هستند.

در سه حالت اول می‌توانید متن خراب را مستقیم در کادر بچسبانید. اما با � فایل زیرنویس اصلی را بکشید، چون متن کپی‌شده از صفحه دیگر حروف را ندارد.

روش درست کردن زیرنویس

  1. فایل زیرنویس را در کادر بالا بکشید و رها کنید.
  2. Mojibuster کدگذاری را تشخیص می‌دهد و حروف خراب را اصلاح می‌کند؛ «ي» و «ك» عربی فایل‌های قدیمی هم به «ی» و «ک» فارسی تبدیل می‌شوند.
  3. فایل را دانلود کنید و به جای زیرنویس قبلی کنار فیلم بگذارید. نام فایل زیرنویس باید با نام فیلم یکی باشد.

زمان‌بندی‌ها، شماره‌ها و خطوط خالی دقیقاً همان‌طور می‌مانند.

نکته‌هایی برای پخش‌کننده‌ها

  • 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 را ببینید.

راهنماهای دیگر