ซับไตเติล VLC เพี้ยน / ตัวอักษรผิด: แก้การเข้ารหัส

ปัญหาซับไตเติล อัปเดตล่าสุด: ใช้ได้กับ: All platforms · VLC 3.0.x

ซับไตเติลเพี้ยน — เครื่องหมายคำถาม เพชรสีดำ หรือกำแพงตัวอักษรที่ไม่มีความหมาย — คือปัญหาการเข้ารหัสตัวอักษร ไม่ใช่ไฟล์ซับไตเติลเสียหาย ไฟล์ซับไตเติลดีอยู่ VLC ถอดรหัสมันด้วยชุดอักขระผิด นี่พบบ่อยมากกับไฟล์ SRT เก่าที่บันทึกเป็น Windows-1252 หรือ Central European และพบได้บ่อยเท่ากับไฟล์ UTF-16 การเปลี่ยน preferences ครั้งเดียวแก้ได้ทั่วไป การแทนที่ต่อไฟล์แก้ได้ทันที

ทำไมจึงเกิดเหตุการณ์นี้?

  • การเข้ารหัสเริ่มต้นผิดใน VLC — VLC สมมติ UTF-8 ไฟล์เก่าที่ Windows-1251/1252/GBK จะถูกอ่านผิด
  • ซับไตเติลเข้ารหัส UTF-16 — เครื่องมือบางตัวบันทึก SRT เป็น UTF-16 พร้อม BOM การตรวจจับอัตโนมัติของ VLC บางครั้งเลือกด้านผิด
  • UTF-8 ไม่มี BOM ที่มี内容物 Chinese/Cyrillic — ไม่มี BOM VLC อาจเดาเป็น codepage เก่า
  • ASS/SSA ที่มีส่วนหัว charset ไม่รองรับ — ไฟล์ประกาศเข้ารหัสหนึ่งแต่บรรจุอีกอัน

วิธีแก้ไข

วิธี 1แก้การแสดงผลคำบรรยาย (การเข้ารหัสอักขระ)

ทำให้คำบรรยายแสดงผลได้อย่างถูกต้อง

  1. ไปที่ Tools > Preferences > Subtitles (อยู่ใต้ "Subtitles / OSD")

    การตั้งค่าคำบรรยายจะเปิดขึ้น

  2. ตั้งค่า "Default encoding" เป็น UTF-8 — และถ้าล้มเหลว ให้ลอง Windows-1252, Windows-1251 (Cyrillic), หรือ codepage ที่ตรงกับภาษาของคุณ (หรือลอง Windows-1252 / Central European สำหรับไฟล์เก่า)

    ข้อความถูกถอดรหัสอย่างถูกต้อง

  3. คลิก Save แล้วเปิดวิดีโออีกครั้ง

    คำบรรยายถูกเรนเดอร์ใหม่ด้วยการตั้งค่าล่าสุด

หมายเหตุการตั้งค่าเฉพาะไฟล์: คลิกขวาที่วิดีโอ > Subtitle > Sub Track เพื่อเลือกแทร็ก และใช้ปุ่ม G กับ H เพื่อปรับเวลาแบบละเอียด

วิธี 2แทนที่การเข้ารหัสสำหรับไฟล์เดียว (ทดสอบด่วน)

แก้ไฟล์ปัจจุบันใน 10 วินาที — และระบุ codepage ที่ถูกต้อง

  1. ขณะเล่น ไปที่ คำบรรยาย > &ร&่องบทบรรยาย (เมนูคลิกขวา) — เปิดซับเมนู "Character encoding" ถ้ามี

    ตัวเลือกการเข้ารหัสปรากฏ

  2. หมุนผ่าน UTF-8, Windows-1252, Windows-1251 จนกว่าข้อความจะอ่านได้

    พบการเข้ารหัสที่ถูกต้อง

  3. จดการเข้ารหัสที่ได้ผลและตั้งเป็นค่าเริ่มต้นใน preferences

    ไฟล์ประเภทนี้ในอนาคตถอดรหัสถูกต้อง

หมายเหตุ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. เปิด Command Prompt (Win+R → cmd) หรือเทอร์มินัล

    พร้อมใช้บรรทัดคำสั่ง

  3. รันคำสั่ง vlc --reset-config (Windows/Linux) — บน macOS ให้ลบ ~/Library/Preferences/org.videolan.vlc แทน

    การตั้งค่าของ VLC กลับไปเป็นค่าเริ่มต้น

  4. เปิด VLC แล้วตั้งค่าใหม่เฉพาะรายการที่คุณจำเป็นต้องใช้จริง

    VLC เริ่มทำงานด้วยการตั้งค่าที่สะอาด

หมายเหตุวิธีนี้จะลบการตั้งค่าที่คุณปรับแต่งไว้ทั้งหมด (รวมถึงปุ่มลัดและสกิน) หากต้องการสำรองไว้ ให้ส่งออกค่าคอนฟิกก่อนที่ Tools > Preferences > All > Interface

การแก้ไขขั้นสูง

วิธี 1แก้ไฟล์ ASS ที่มีส่วนหัว charset ผิด

จัดการซับไตเติลตกแต่งที่เพิกเฉยการตั้งค่าการเข้ารหัส

  1. เปิดไฟล์ .ass ในตัวแก้ไขข้อความและตรวจสอบส่วนหัว "Script Info" หาบรรทัด charset

    เห็นส่วนหัวแล้ว

  2. ถ้าไฟล์มี Russian/Chinese ในส่วนหัวที่เป็น UTF-8 ให้บันทึกใหม่เป็น UTF-8 และลบบรรทัด charset override

    ส่วนหัวตรงกับเนื้อหา

  3. โหลดใน VLC ใหม่ — การตกแต่ง ASS จะใช้กับข้อความที่ถูกต้อง

    ซับไตเติลตกแต่งอ่านได้

หมายเหตุไฟล์ ASS บรรจุข้อมูลเมตาฟอนต์และ charset ของตัวเอง เมื่อขัดแย้งกัน ต้องแก้ไฟล์ — VLC ปฏิบัติตามส่วนหัว

วิธีป้องกันในอนาคต

  • บันทึกซับไตเติลเป็น UTF-8 เป็นค่าเริ่มต้น
  • ใช้เครื่องมือ (subliminal, subdownloader) ที่ส่งออก UTF-8
  • ถ้าคุณแก้ซับไตเติลด้วยมือ ให้เก็บ BOM ไว้หรือ确保ตัวแก้ไขเขียน UTF-8

คำถามที่พบบ่อย

ทำไมซับไตเติลของฉันแสดงเป็นกล่อง (□) ใน VLC?
กล่องหมายความว่าฟอนต์ขาด glyph สำหรับตัวอักษรเหล่านั้น หรือการเข้ารหัสผิด แก้การเข้ารหัสก่อน ถ้ายังเป็นกล่องกับการเข้ารหัสถูกต้อง แสดงว่าฟอนต์ขาดสคริปต์ — เปลี่ยนฟอนต์ซับไตเติลใน preferences
VLC รองรับซับไตเติล Chinese, Cyrillic หรือ Arabic ไหม?
ใช่ ด้วยฟอนต์ที่ครอบคลุมสคริปต์ การเข้ารหัสต้องเป็น UTF-8 (หรือ codepage ที่ตรงกัน) สำหรับ Arabic/Hebrew ให้เปิดตัวเลือก RTL ใน preferences ซับไตเติลด้วย
ซับไตเติลดูดีใน Notepad แต่เพี้ยนใน VLC — ทำไม?
Notepad ตรวจจับการเข้ารหัสอัตโนมัติ VLC ใช้ค่าเริ่มต้นที่ตั้งค่าไว้ ตั้งการเข้ารหัสเริ่มต้นของ VLC ให้ตรงกับการเข้ารหัสจริงของไฟล์
ข้อความเพี้ยนเฉพาะในโหมดเต็มจอ?
นั้นผิดปกติและชี้ไปที่ตัวเรนเดอร์ ไม่ใช่การเข้ารหัส สลับโมดูลเอาต์พุตวิดีโอหรืออัปเดตไดรเวอร์ GPU

สรุป

แก้การแสดงผลคำบรรยาย (การเข้ารหัสอักขระ) — ทำให้คำบรรยายแสดงผลได้อย่างถูกต้อง. 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.