ข้ามไปยังเนื้อหาหลัก
SubtitleMatrix

ลบ BOM ออกจากคำบรรยาย

ข้อความและสไตล์แก้ encoding และ BOM
หรือวางข้อความคำบรรยาย

ตัวเลือก

BOM คือสามไบต์ที่จุดเริ่มต้นไฟล์ซึ่งบอกว่าไฟล์เข้ารหัสด้วยอะไร มันมองไม่เห็นในโปรแกรมแก้ไขและโปรแกรมเล่นทุกตัว ไม่กินพื้นที่บนจอ และไม่มีอะไรในคำบรรยายเปลี่ยนเมื่อเพิ่มหรือลบมัน มีเครื่องมือสองชนิดที่สนใจมัน: โปรแกรม Windows ที่เขียนคำบรรยายซึ่งใส่ไว้เป็นค่าเริ่มต้น และตัวแยกไฟล์ที่เข้มงวดในไปป์ไลน์บิลด์ซึ่งปฏิเสธไฟล์ที่เริ่มด้วยมัน หน้านี้เปิดช่องในสถานะที่ชื่อหน้าบอกไว้ คุณจึงสลับได้หากไฟล์ของคุณกลายเป็นอีกแบบ ไฟล์ UTF-16 มี BOM เสมอ เพราะนั่นคือวิธีที่ตัวอ่านรู้ว่ากำลังดูลำดับไบต์แบบใด — การขอให้ลบในกรณีนั้นจึงปล่อยมันไว้

เฟรมเรตที่ใช้คำนวณเวลา ในหน้าเกี่ยวกับรูปแบบ ช่องนี้คือสิ่งที่ MicroDVD ต้องการ เพราะมันเก็บเวลาเป็นหมายเลขเฟรม ในหน้าแปลงเฟรมเรต ช่องนี้คือเฟรมเรตที่ไฟล์ถูกตั้งเวลาไว้ — เวอร์ชันที่คำบรรยายถูกทำขึ้นมา — และช่องที่สองของหน้ารับเฟรมเรตของวิดีโอที่คุณจะใช้กับคำบรรยายนี้ ค่าที่พบทั่วไปคือ 23.976, 24, 25, 29.97, 30, 50, 59.94 และ 60 หากใส่ผิดจะเลื่อนไทม์ไลน์ทั้งหมด และในหน้าแปลงเฟรมเรตจะเลื่อนด้วยอัตราส่วน ไม่ใช่ด้วยจำนวนคงที่

เครื่องหมายลำดับไบต์คืออักขระหนึ่งตัว U+FEFF ที่นั่งอยู่หน้าทุกสิ่งทุกอย่างในไฟล์ เครื่องมือจำนวนมากเขียนมันและเครื่องมือจำนวนมากไม่คาดคิดว่าโอจจะเจอ เครื่องมือหลังจะแสดงมันเป็นก้อนสัญลักษณ์สั้น ๆ ติดอยู่ที่ต้นคิวแรก หน้านี้เอาออกและปล่อยทุกอย่างที่เหลือไว้เหมือนที่พบ การลบมันสำคัญที่สุดตรงที่ไฟล์หยุดเป็นสิ่งที่คนอ่านและเริ่มเป็นสิ่งที่โปรแกรมแยกวิเคราะห์ เช่นไปป์ไลน์สร้างคำบรรยาย สคริปต์ที่อ่านบรรทัดแรก และรูปแบบที่ข้อกำหนดบอกว่าไบต์เปิดไฟล์คืออักขระตัวแรกของคิวแรก มันสำคัญเมื่อไฟล์ถูกต่อกัน เพราะเครื่องหมายกลางไฟล์ที่ต่อแล้วคืออักขระกลางคิว และสำคัญกับการส่งมอบ ถ้าข้อกำหนดบอกว่า UTF-8 โดยไม่มีเครื่องหมาย เครื่องหมายคือความต่างที่ตัวตรวจจะเจอ สิ่งที่หน้าไม่ทำคือตัดสินใจอย่างอื่นให้ หมายเลขคิว ไทม์โค้ด ข้อความในคิว และการขึ้นบรรทัดกลับมาเหมือนขาเข้า รวม CRLF และไฟล์ที่ไม่มีเครื่องหมายกลับมาทุกไบต์แทนที่จะถูกเขียนใหม่เป็นสิ่งที่เทียบเท่า การลบเครื่องหมายไม่เหมือนกับการเปลี่ยนการเข้ารหัสอักขระของไฟล์ และสองเรื่องนี้มักถูกสับสน หน้านี้เปลี่ยนอักขระตัวแรกของไฟล์และไม่เปลี่ยนว่าส่วนที่เหลือถูกเข้ารหัสอย่างไร

มีกรณีหนึ่งที่ชื่อหน้ากับสิ่งที่เกิดขึ้นจริงแยกจากกันและควรรู้ก่อนรัน ไฟล์ UTF-16 ต้องการเครื่องหมาย เพราะถ้าไม่มีก็แยกสองลำดับไบต์ไม่ออก ไฟล์ UTF-16 ที่เขียนโดยไม่มีเครื่องหมายจึงอ่านกลับไม่ได้ ส่งไฟล์หนึ่งผ่านหน้านี้แล้วไฟล์ที่ดาวน์โหลดจะยังมีเครื่องหมาย เพราะทางเลือกคือไฟล์ที่ไม่มีใครเปิดได้ ถ้าไฟล์เป็น UTF-16 และต้องเอาเครื่องหมายออก สิ่งที่ต้องการคือการเข้ารหัสอื่นไม่ใช่การเข้ารหัสเดิมที่ไม่มีเครื่องหมาย และหน้าที่แปลงการเข้ารหัสลิงก์อยู่ด้านล่าง เครื่องหมายถูกลบจากไฟล์ที่ดาวน์โหลด สองบานจึงอาจดูเหมือนกัน อักขระความกว้างศูนย์ก็คืออักขระที่มองไม่เห็น ตรวจผลในตัวบ่งชี้การเข้ารหัสหรือโปรแกรมดูไบต์ ไฟล์ที่ไม่มีเครื่องหมายเริ่มด้วยไบต์แรกของคิวแรก ทั้งสิบสองรูปแบบถูกรับและไม่มีการอัปโหลด

ตัวอย่าง

ไฟล์ที่มีเครื่องหมายถูกถอดออก

ข้อมูลนำเข้า

1
00:00:01,000 --> 00:00:02,000
The room is dark.

ผลลัพธ์

1
00:00:01,000 --> 00:00:02,000
The room is dark.

อินพุตเริ่มด้วย U+FEFF และเอาต์พุตไม่เริ่ม สองไฟล์ต่างกันเพียงอักขระนั้นตัวเดียวซึ่งคือการดำเนินการทั้งหมด ไฟล์ในสภาพนี้มักออกมาจากโปรแกรมคำบรรยายบนวินโดวส์ และเหตุผลที่คนอยากให้เครื่องหมายหายคือขั้นตอนสร้างหรือตัวแยกวิเคราะห์ที่เข้มงวดซึ่งดูไบต์เปิดไฟล์แทนที่จะดูคิว

ไฟล์วินโดวส์ที่ลบเครื่องหมายและคง carriage return

ข้อมูลนำเข้า

1
00:00:01,000 --> 00:00:02,000
Marked and Windows.

ผลลัพธ์

1
00:00:01,000 --> 00:00:02,000
Marked and Windows.

มีเพียงเครื่องหมายที่หายไป carriage return ทุกตัวเป็นของไฟล์เองและหน้านี้ไม่มีความเห็นเรื่องมัน คนที่อยากเปลี่ยนทั้งสองอย่างต้องใช้หน้าการขึ้นบรรทัด และการแยกสองเรื่องออกจากกันคือสิ่งที่ทำให้แต่ละหน้าปลอดภัยที่จะรันบนไฟล์ที่คุณยังไม่ได้เปิด ข้อความที่คาดหวังยังคง CRLF เหมือนอินพุต

ไฟล์ที่ไม่มีเครื่องหมายถูกคืนทุกไบต์

ข้อมูลนำเข้า

1
00:00:01,000 --> 00:00:02,000
The room is dark.

ผลลัพธ์

1
00:00:01,000 --> 00:00:02,000
The room is dark.

ไม่มีอะไรให้ลบ ไฟล์จึงกลับมาไม่เปลี่ยนรวมถึงการไม่มีเครื่องหมาย นี่คือกรณีที่จับการทำงานซึ่งเขียนเครื่องหมายก่อนแล้วค่อยลบ หรือจัดมาตรฐานไฟล์ระหว่างทาง การอ่านที่ซื่อตรงของคำว่าไม่มีอะไรต้องทำคืออินพุตเองทุกไบต์ไม่ใช่เวอร์ชันที่เรียบร้อยกว่า

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

จะรู้ได้อย่างไรว่าไฟล์คำบรรยายมีเครื่องหมายลำดับไบต์

เปิดในโปรแกรมแก้ไขที่แสดงการเข้ารหัส ไฟล์ UTF-8 ที่มีเครื่องหมายมักถูกติดป้ายว่า UTF-8 with BOM หรือ UTF-8 BOM ไม่ใช่ UTF-8 ธรรมดา ถ้าไม่มีให้ดูไบต์แรกในโปรแกรมดูไบต์ ไฟล์ที่เริ่มด้วย EF BB BF มีเครื่องหมายและไฟล์ที่เริ่มด้วยอักขระแรกของคิวไม่มี ก้อนสัญลักษณ์ต้นบรรทัดแรกคือสิ่งเดียวกันที่เห็นโดยโปรแกรมที่อ่านเครื่องหมายเป็นอักขระธรรมดาสามตัว

ทำไมเครื่องหมายยังอยู่บนไฟล์คำบรรยาย UTF-16 หลังลบแล้ว

เพราะไฟล์ UTF-16 ต้องการมัน UTF-16 เก็บทุกอักขระเป็นสองไบต์และสองลำดับไบต์ดูคล้ายกันจากภายนอก เครื่องหมายคือสิ่งที่บอกตัวอ่านว่าอยู่ลำดับใด ไฟล์ UTF-16 ที่ไม่มีเครื่องหมายอ่านกลับไม่ได้ทั้งโดยเว็บนี้และอย่างอื่น หน้านี้จึงเก็บมันไว้ ถ้าต้องการไฟล์ที่ไม่มีเครื่องหมายเลย ให้เปลี่ยนการเข้ารหัสเป็น UTF-8 หรือ Windows-1252 ซึ่งเครื่องหมายเป็นทางเลือก

หน้านี้ทำอันตรายไฟล์คำบรรยายที่ไม่เคยมีเครื่องหมายไหม

ไม่ทำ ผลลัพธ์ของกรณีนั้นคืออินพุตทุกไบต์และไม่มีอะไรถูกรายงาน การรันบนไฟล์ที่ไม่แน่ใจสภาพจึงปลอดภัยโดยโครงสร้าง ด้วยเหตุผลเดียวกัน เมื่อไม่มีเครื่องหมายให้ลบก็ไม่มีอะไรต้องเขียน และเมื่อมีก็เป็นการเปลี่ยนที่เล็กที่สุด การรันที่ไม่พบอะไรให้ทำไม่ใช่การรันที่ทำอะไร

ไฟล์คำบรรยายมีเครื่องหมายลำดับไบต์มากกว่าหนึ่งตัวได้ไหม

ได้ และเกิดขึ้นเมื่อเครื่องมือเพิ่มเครื่องหมายโดยไม่ตรวจของเดิมก่อน เครื่องหมายที่สองทำให้ไฟล์ดูปกติในโปรแกรมแก้ไขแต่ต่างจากไฟล์ปกติที่ไบต์เปิดไฟล์ หน้านี้ลบทั้งหมดไม่ใช่ตัวเดียว ไฟล์ที่มีเครื่องหมายซ้อนจึงถูกทำความสะอาดในรอบเดียวและการรันซ้ำไม่เปลี่ยนอะไรอีก

การลบเครื่องหมายเปลี่ยนการเข้ารหัสของไฟล์คำบรรยายไหม

ไม่ใช่ในความหมายที่คนมักหมาย ข้อความของไฟล์ยังเป็นอักขระเดิมและส่วนที่เหลือยังถูกเข้ารหัสแบบเดิม สิ่งที่เปลี่ยนคือตัวอ่านไม่มีไบต์เปิดไฟล์บอกการเข้ารหัสอีกแล้ว ไฟล์ UTF-8 ที่ไม่มีเครื่องหมายคือ UTF-8 ธรรมดาซึ่งเป็นสิ่งที่เครื่องมือส่วนใหญ่สมมติอยู่แล้ว การเปลี่ยนการเข้ารหัสเองเป็นหน้าอีกหน้าและลิงก์จากที่นี่

เครื่องหมายจะกลับมาเมื่อดาวน์โหลดไฟล์คำบรรยายไหม

ไม่กลับ การดาวน์โหลดคือจุดที่ไฟล์ถูกเขียนและการรันหน้านี้เขียนโดยไม่มีเครื่องหมาย สิ่งที่ได้จึงเป็นสิ่งที่สองบานอธิบาย การเข้ารหัสที่ไฟล์ถูกเขียนถูกเก็บจากตอนที่อ่าน โดยมีข้อยกเว้นหนึ่ง ไฟล์ที่เข้ามาเป็น UTF-16 ถูกเขียนกลับเป็น UTF-16 และเก็บเครื่องหมายไว้ เพราะเครื่องหมายนั้นเป็นโครงสร้างไม่ใช่ของประดับ

เครื่องมือที่เกี่ยวข้อง