ซับไตเติล VLC เพี้ยน / ตัวอักษรผิด: แก้การเข้ารหัส
ซับไตเติลเพี้ยน — เครื่องหมายคำถาม เพชรสีดำ หรือกำแพงตัวอักษรที่ไม่มีความหมาย — คือปัญหาการเข้ารหัสตัวอักษร ไม่ใช่ไฟล์ซับไตเติลเสียหาย ไฟล์ซับไตเติลดีอยู่ 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แก้การแสดงผลคำบรรยาย (การเข้ารหัสอักขระ)
ทำให้คำบรรยายแสดงผลได้อย่างถูกต้อง
ไปที่ Tools > Preferences > Subtitles (อยู่ใต้ "Subtitles / OSD")
การตั้งค่าคำบรรยายจะเปิดขึ้น
ตั้งค่า "Default encoding" เป็น UTF-8 — และถ้าล้มเหลว ให้ลอง Windows-1252, Windows-1251 (Cyrillic), หรือ codepage ที่ตรงกับภาษาของคุณ (หรือลอง Windows-1252 / Central European สำหรับไฟล์เก่า)
ข้อความถูกถอดรหัสอย่างถูกต้อง
คลิก Save แล้วเปิดวิดีโออีกครั้ง
คำบรรยายถูกเรนเดอร์ใหม่ด้วยการตั้งค่าล่าสุด
วิธี 2แทนที่การเข้ารหัสสำหรับไฟล์เดียว (ทดสอบด่วน)
แก้ไฟล์ปัจจุบันใน 10 วินาที — และระบุ codepage ที่ถูกต้อง
ขณะเล่น ไปที่ คำบรรยาย > &ร&่องบทบรรยาย (เมนูคลิกขวา) — เปิดซับเมนู "Character encoding" ถ้ามี
ตัวเลือกการเข้ารหัสปรากฏ
หมุนผ่าน UTF-8, Windows-1252, Windows-1251 จนกว่าข้อความจะอ่านได้
พบการเข้ารหัสที่ถูกต้อง
จดการเข้ารหัสที่ได้ผลและตั้งเป็นค่าเริ่มต้นใน preferences
ไฟล์ประเภทนี้ในอนาคตถอดรหัสถูกต้อง
วิธี 3บันทึกซับไตเติลเป็น UTF-8 ใหม่
วิธีแก้ระดับไฟล์ถาวร
เปิด .srt ใน Notepad++ (หรือ VS Code / ตัวแก้ไขใดก็ได้ที่ควบคุมการเข้ารหัสได้)
ไฟล์เปิด อาจเพี้ยน
เมนู > Encoding > Convert to UTF-8 (ไม่มี BOM ก็ได้)
ไฟล์ถูกแปลง
บันทึก แล้วโหลดวิดีโอใน VLC ใหม่
ซับไตเติลเรนเดอร์ถูกต้องทุกที่ บนอุปกรณ์ใดก็ได้
วิธี 4รีเซ็ตการตั้งค่าของ VLC กลับเป็นค่าเริ่มต้น
ล้างการตั้งค่าที่เสียหายซึ่งทำให้โปรแกรมแครช จอดำ และเกิดปัญหาเสียง
ปิด VLC ให้สมบูรณ์
ไม่มีโปรเซสของ VLC ทำงานอยู่
เปิด Command Prompt (Win+R → cmd) หรือเทอร์มินัล
พร้อมใช้บรรทัดคำสั่ง
รันคำสั่ง
vlc --reset-config(Windows/Linux) — บน macOS ให้ลบ~/Library/Preferences/org.videolan.vlcแทนการตั้งค่าของ VLC กลับไปเป็นค่าเริ่มต้น
เปิด VLC แล้วตั้งค่าใหม่เฉพาะรายการที่คุณจำเป็นต้องใช้จริง
VLC เริ่มทำงานด้วยการตั้งค่าที่สะอาด
การแก้ไขขั้นสูง
วิธี 1แก้ไฟล์ ASS ที่มีส่วนหัว charset ผิด
จัดการซับไตเติลตกแต่งที่เพิกเฉยการตั้งค่าการเข้ารหัส
เปิดไฟล์ .ass ในตัวแก้ไขข้อความและตรวจสอบส่วนหัว "Script Info" หาบรรทัด charset
เห็นส่วนหัวแล้ว
ถ้าไฟล์มี Russian/Chinese ในส่วนหัวที่เป็น UTF-8 ให้บันทึกใหม่เป็น UTF-8 และลบบรรทัด charset override
ส่วนหัวตรงกับเนื้อหา
โหลดใน VLC ใหม่ — การตกแต่ง ASS จะใช้กับข้อความที่ถูกต้อง
ซับไตเติลตกแต่งอ่านได้
วิธีป้องกันในอนาคต
- บันทึกซับไตเติลเป็น UTF-8 เป็นค่าเริ่มต้น
- ใช้เครื่องมือ (subliminal, subdownloader) ที่ส่งออก UTF-8
- ถ้าคุณแก้ซับไตเติลด้วยมือ ให้เก็บ BOM ไว้หรือ确保ตัวแก้ไขเขียน UTF-8
คำถามที่พบบ่อย
ทำไมซับไตเติลของฉันแสดงเป็นกล่อง (□) ใน VLC?
VLC รองรับซับไตเติล Chinese, Cyrillic หรือ Arabic ไหม?
ซับไตเติลดูดีใน Notepad แต่เพี้ยนใน 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.