زیرنویس به‌هم‌ریخته یا نویسه‌های نادرست در VLC: رفع رمزگذاری

مشکلات زیرنویس آخرین به‌روزرسانی: مناسب برای: All platforms · VLC 3.0.x

زیرنویس به‌هم‌ریخته — علامت سؤال، لوزی سیاه یا دیواری از نویسه‌های بی‌معنا — یک مشکل رمزگذاری متن است، نه فایل زیرنویس آسیب‌دیده. فایل زیرنویس سالم است؛ VLC آن را با مجموعه نویسه نادرست رمزگشایی می‌کند. این مشکل با فایل‌های قدیمی SRT که به‌صورت Windows-1252 یا اروپای مرکزی ذخیره شده‌اند بسیار رایج است، و به همان اندازه با فایل‌های UTF-16. یک تغییر در تنظیمات آن را به‌طور کلی برطرف می‌کند و بازنویسی برای هر فایل فوراً درستش می‌کند.

چرا این اتفاق می‌افتد؟

  • رمزگذاری پیش‌فرض نادرست در VLC — VLC فرض می‌کند UTF-8 است؛ فایل‌های قدیمی با Windows-1251/1252/GBK اشتباه خوانده می‌شوند.
  • زیرنویس‌های رمزگذاری‌شده با UTF-16 — بعضی ابزارها فایل SRT را به‌صورت UTF-16 با BOM ذخیره می‌کنند؛ تشخیص خودکار VLC گاهی سمت نادرست را انتخاب می‌کند.
  • فایل UTF-8 بدون BOM با محتوای چینی/سیریلیک — بدون BOM، VLC ممکن است یک صفحه‌کد قدیمی را حدس بزند.
  • فایل‌های ASS/SSA با سرآیند مجموعه نویسه پشتیبانی‌نشده — فایل یک رمزگذاری را اعلام می‌کند اما محتوای آن چیز دیگری است.

چگونه رفع کنیم

راه‌حل 1نمایش زیرنویس را اصلاح کنید (رمزگذاری نویسه‌ها)

باعث می‌شود زیرنویس‌ها درست نمایش داده شوند

  1. به Tools > Preferences > Subtitles بروید (زیر بخش "Subtitles / OSD").

    تنظیمات زیرنویس باز می‌شود.

  2. گزینه "Default encoding" را روی UTF-8 — و اگر جواب نداد، Windows-1256 (عربی/فارسی)، Windows-1252 یا صفحه‌کد هم‌خوان با زبان خود را امتحان کنید بگذارید (یا برای فایل‌های قدیمی Windows-1256 / عربی-فارسی را امتحان کنید).

    متن به‌درستی رمزگشایی می‌شود.

  3. روی Save کلیک کنید و ویدیو را دوباره باز کنید.

    زیرنویس‌ها با تنظیمات جدید از نو ترسیم می‌شوند.

توجهتغییر برای هر فایل: روی ویدیو راست‌کلیک کنید > Subtitle > Sub Track تا یک ترک انتخاب کنید؛ برای تنظیم دقیق زمان‌بندی از کلیدهای G و H استفاده کنید.

راه‌حل 2رمزگذاری را برای یک فایل بازنویسی کنید (آزمون سریع)

فایل فعلی را در ۱۰ ثانیه درست می‌کند — و صفحه‌کد صحیح را مشخص می‌کند

  1. در حین پخش به زیرنویس > Sub Track بروید (منوی راست‌کلیک) — اگر موجود بود، زیرمنوی «Character encoding» را باز کنید.

    گزینه‌های رمزگذاری ظاهر می‌شوند.

  2. میان UTF-8، Windows-1256 و Windows-1252 بگردید تا متن خوانا شود.

    رمزگذاری درست پیدا می‌شود.

  3. رمزگذاری کارآمد را یادداشت کنید و آن را در تنظیمات به‌عنوان پیش‌فرض بگذارید.

    فایل‌های بعدی از این نوع درست رمزگشایی می‌شوند.

توجهبرنامه VLC 3.0 در برخی سیستم‌عامل‌ها انتخابگر رمزگذاری را برای هر ترک از مسیر زیرنویس > رمزگذاری کاراکتر نشان می‌دهد؛ در بقیه، از پیش‌فرض کلی استفاده کنید.

راه‌حل 3زیرنویس را به‌صورت UTF-8 دوباره ذخیره کنید

راه‌حل همیشگی در سطح فایل

  1. فایل .srt را در Notepad++ (یا VS Code / هر ویرایشگری با کنترل رمزگذاری) باز کنید.

    فایل باز می‌شود، احتمالاً به‌هم‌ریخته.

  2. از منوی Encoding گزینه Convert to UTF-8 را انتخاب کنید (بدون BOM هم مشکلی ندارد).

    فایل تبدیل می‌شود.

  3. ذخیره کنید و ویدیو را در VLC از نو بارگذاری کنید.

    زیرنویس‌ها همه‌جا و روی هر دستگاهی درست نمایش داده می‌شوند.

توجهتبدیل به UTF-8 زیرنویس را قابل حمل می‌کند — VLC، تلویزیون‌ها، گوشی‌ها و پخش‌کننده‌های وب همه UTF-8 را قابل اعتماد مدیریت می‌کنند.

راه‌حل 4تنظیمات VLC را به حالت پیش‌فرض بازگردانید

تنظیمات خراب که باعث کرش، صفحه سیاه و مشکلات صدا می‌شوند را از بین می‌برد

  1. VLC را کاملاً ببندید.

    هیچ پردازه‌ای از VLC در حال اجرا نیست.

  2. یک خط فرمان باز کنید (Win+R ← cmd) یا یک ترمینال.

    خط فرمان در دسترس است.

  3. دستور vlc --reset-config را اجرا کنید (ویندوز/لینوکس) — در macOS به‌جای آن پوشه ~/Library/Preferences/org.videolan.vlc را حذف کنید.

    تنظیمات VLC به مقادیر پیش‌فرض بازمی‌گردد.

  4. VLC را اجرا کنید و فقط تنظیماتی را که واقعاً لازم دارید دوباره اعمال کنید.

    VLC با تنظیمات پاک شروع به کار می‌کند.

توجهاین کار همه تنظیمات شخصی‌سازی‌شده (از جمله کلیدهای میان‌بر و پوسته‌ها) را پاک می‌کند. اگر نسخه پشتیبان می‌خواهید، ابتدا پیکربندی خود را از Tools > Preferences > All > Interface خروجی بگیرید.

رفع اشکال پیشرفته

راه‌حل 1رفع فایل‌های ASS با سرآیند مجموعه نویسه نادرست

زیرنویس‌های سبک‌دار که تنظیمات رمزگذاری را نادیده می‌گیرند را مدیریت می‌کند

  1. فایل .ass را در یک ویرایشگر متن باز کنید و سرآیند «Script Info» را برای یافتن خط charset بررسی کنید.

    سرآیند دیده می‌شود.

  2. اگر فایل محتوای روسی/چینی در سرآیندی به‌ظاهر UTF-8 دارد، آن را به‌صورت UTF-8 دوباره ذخیره کنید و هر خط بازنویسی charset را حذف کنید.

    سرآیند با محتوا هم‌خوان می‌شود.

  3. در VLC از نو بارگذاری کنید — اکنون سبک‌دهی ASS با متن درست اعمال می‌شود.

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

توجهفایل‌های ASS فرا‌داده قلم و مجموعه نویسه خود را همراه دارند؛ وقتی با هم تضاد داشته باشند، باید فایل اصلاح شود — VLC از سرآیند پیروی می‌کند.

چگونه در آینده از آن جلوگیری کنیم

  • زیرنویس‌ها را به‌طور پیش‌فرض با UTF-8 ذخیره کنید.
  • از ابزارهایی استفاده کنید (subliminal، subdownloader) که خروجی UTF-8 می‌دهند.
  • اگر زیرنویس را دستی ویرایش می‌کنید، BOM را نگه دارید یا مطمئن شوید ویرایشگر با UTF-8 می‌نویسد.

سؤالات متداول

چرا زیرنویس من در VLC به شکل مربع (□) نمایش داده می‌شود؟
مربع یعنی قلم نویسه‌های لازم را ندارد، یا رمزگذاری نادرست است. اول رمزگذاری را درست کنید؛ اگر با رمزگذاری صحیح هم مربع ماند، قلم آن خط را پشتیبانی نمی‌کند — قلم زیرنویس را در تنظیمات تغییر دهید.
آیا VLC زیرنویس چینی، سیریلیک یا فارسی و عربی را پشتیبانی می‌کند؟
بله، با قلمی که آن خط را پوشش دهد. رمزگذاری باید UTF-8 (یا صفحه‌کد هم‌خوان) باشد. برای فارسی، عربی و عبری گزینه راست‌به‌چپ را هم در تنظیمات زیرنویس فعال کنید.
زیرنویس در Notepad سالم است اما در VLC به‌هم‌ریخته — چرا؟
برنامه Notepad رمزگذاری را خودکار تشخیص می‌دهد؛ VLC از پیش‌فرض تنظیم‌شده خود استفاده می‌کند. رمزگذاری پیش‌فرض VLC را با رمزگذاری واقعی فایل هم‌خوان کنید.
متن فقط در حالت تمام‌صفحه به‌هم‌ریخته است؟
این غیرمعمول است و به رندرکننده اشاره دارد، نه رمزگذاری. ماژول خروجی ویدیو را تغییر دهید یا درایور کارت گرافیک را به‌روزرسانی کنید.

جمع‌بندی

نمایش زیرنویس را اصلاح کنید (رمزگذاری نویسه‌ها) — باعث می‌شود زیرنویس‌ها درست نمایش داده شوند. If it does not help, work through the remaining fixes in order: each targets a different layer of the problem. Most users resolve this issue by fix 3 at the latest. Keep VLC updated (current stable: 3.0.23) and revisit this guide when a new VLC version ships.