แปลจากบทความ
How to Transfer Text Files Between Linux, Macintosh, and Microsoft Windows Operating Systems
แฟ้ม Text File มักจะไม่สามารถโยกย้ายข้ามระบบปฏิบัติการได้ง่ายนัก เพราะอะไร ? เพราะความแตกต่างระหว่างระบบปฏิบัติการที่ใช้เครื่องหมายสิ้นสุดบรรทัดที่ ต่างกัน นีคือเหตุที่ทำให้ให้คุณต้องสับสนเมื่อต้องย้ายแฟ้มจากอีกระบบหนึ่งไปอีก ระบบหนึ่ง
ระบบปฎิบัติการ Macintosh แบบดั้งเดิม(ต่อจะเรียกว่า Classic Macintosh) นั้นจะใช้อักขระ Carriage Return เป็นตัวบอกการสิ้นสุดของบรรทัด อักขระตัวนี้ง่ายต่อการเข้าใจสำหรับผู้อายุมากที่คุ้นเคยกับการใช้พิมพ์ดีด ในสมัยก่อนนั้น แต่สำหรับผู้ที่อายุน้อยๆ รุ่นถัดมานั้น เครื่องพิมพ์ดีดไฟฟ้าที่ใช้อยู่จะมีแป้นขนาดใหญ่เรียกว่า Carriage Return ซึ่งจะเพิ่มการเลื่อนบรรทัดใหม่โดยอัตโนมัติเข้ามาด้วย
เมื่อเวลา เปลี่ยนไป ระบบปฏิบัติการvMacintosh รุ่นใหม่กว่าที่เรียกว่า Mac OS X ก็เปลี่ยนมาเป็นการใช้อักขระ Line Feed แทนการใช้ Carriage Return
อะไรคือสิ่งที่แตกต่าง อักขระ Carriage Return มักจะถูกอ้างถึงโดยใช้ตัวอักษร CR ขณะที่ Line Feed นั้นถูกอ้างถึงด้วยตัวอักษร LF
ใน Classic Mac อักขระ CR จะบอกการสิ้นสุดบรรทัด ในขณะที่ Mac รุ่นใหม่ LF ทำหน้าที่นั้นแทน
ในระบบปฏิบัติการ Linux (พัฒนามากจาก Unix) ใช้อักขระ Line Feed ระบุการสิ้นสุดบรรทัดเช่นเดียวกับ ระบบปฏิบัติ Mac OS X
หรือ กล่าวได้ว่า Linux และ Mac OS X ใช้อักขระระบุการสิ้นสุดบรรทัดตัวเดียวกัน นั่นคือ LF และเพื่อไม่ให้สับสนให้คิดว่าในบทความนี้คำว่าระบบปฎิบัติการ Mac OS X และ Linux สามารถใช้แทนกันได้
ส่วนระบบปฏิบัติการ Classic Mac อยู่ในกลุ่มที่เป็นเอกเทศ มันเป็นระบบปฎิบัติการเดียวที่ใช้อักระ CR เป็นตัวระบุการสิ้นสุดบรรทัด
ความ แตกต่างระหว่าง LF และ CR ไม่ใช่แค่หมายถึงวิธีการขึ้นบรรทัดใหม่ แต่อักขระทั้งสองตัวมีหมายเลขที่ต่างกันในตาราง ASCII โดย CR แทนด้วยหมายเลข 13 และ LF แทนด้วยหมายเลข 10
สิ่งที่ทำให้สับสนเพิ่ม ขึ้นอีกคือ ระบบปฏิบัติการ Windows ก็ทำสิ่งเดียวกันนี้ไปอีกแบบ โดยกำหนดให้อักขระที่ระบุการสิ้นสุดของบรรทัดมีสองตัวคือ CR ตามด้วย LF และแทนด้วยสัญลักษณ์ CRLF
แง่มุมของประวัติศาสตร์
อักขระ Line Feed ถูกแยกออกมาจาก Carriage Return ด้วยเหตุผลทางประวัติศาสตร์ ในสมัยก่อนนั้น สำนักข่าวจะส่งข่าวผ่านทางเครื่อง Teletype ปัจจุบันพบเห็นได้จำกัดเนื่องจากมีอุปกรณ์นี้ไม่ใช่เครื่องคอมพิวเตอร์แต่ เป็นเครื่องกลผสมกับไฟฟ้า
Teletype มีขนาดใหญ่ และการทำงานงานของมันก็ส่งเสียง แท็บๆ เบื้องหลัง เหมือนที่ คุณเคยได้ยินในรายการข่าวทางวิทยุและโทรทัศน์ในสมัยก่อน มันเป็นเสียงที่ทำให้ผู้ประกาศข่าวรู้ว่าข่าวด่วนและสำคัญได้ส่งมาถึงเขา แล้ว ในสมัยนี้ผู้ประกาศจะใช้เสียงเพลงเปิดรายการเป็นการบอกว่ามีข่าวที่สำคัญมา ถึงแล้วแทน
ในหลายกรณี เครื่อง Teletype พวกนี้ไม่มีสมอง ไม่มีหน่วยประมวลผลกลาง มันไม่ฉลาด จึงจำเป็นที่จะต้องบอกสิ่งเล็กๆ น้อยๆ ทุกสิ่งให้มันทราบ รวมทั้งการ "กลับไปที่ต้นบรรทัด"(CR) และ "ขึ้นบรรทัดใหม่" (LF)
อะไรคือ Carriage Return ? มันทำให้หัวพิมพ์ของเครื่อง Teletype เลื่อนไปทางด้านซ้ายสุดของกระดาษ อะไรคือ Linefeed ? มันทำให้แคร่พิมพ์ของเครื่อง Teletype เลื่อนกระดาษไปอีกหนึ่งบรรทัด นี่คือสองสิ่งที่ทำหน้าที่ต่างกัน
ใน ขณะที่ในเครื่องพิมพ์ดีดนั้นงานทั้งสองอย่างถูกรวมเข้าด้วยกันด้วยปุ่ม Cariage Return และนี่คือสาเหตุว่าทำไมปุ่ม Enter ในเครื่องคอมพิวเตอร์นั้นเป็นการแทนอักขณะทั้งสองตัว -- ด้วยเหตุผลทางประวัติศาสตร์นั่นเอง
การแปลงแฟ้ม Text File จากระบบปฎบัติการหนึ่งไปอีกระบบปฏิบัติการหนึ่ง
การ แปลงแฟ้มจากระบบปฏิบัติการ Windows ไปสู่ระบบปฎิบัติการ Linux หรือ Classic Mac นั้น คุณต้องเอาอักขณะ LF ออกจาก CRLF ส่วนการแปลงไปสู่ระบบปฏิบัติการ Linux (หรือ Mac OS X )นั้น คุณต้องเอาอักขระอีกตัวคือ CR ออกจาก CRLF แทน
และการแปลงย้อนกลับก็ ต้องอาศัยการเพิ่มบางอักขระเข้ามา หากต้องการแปลงแฟ้มจาก Classic Mac เพื่อไปใช้ใน Windows คุณต้องเพิ่ม LF ตามหลังทุกๆ CR ส่วนการแปลงแฟ้มจาก Linux เพื่อไปใช้ใน Windows คุณต้องเพิ่ม CR เข้าก่อนหน้าของทุกๆ อักขระ LF
การเปลี่ยนแฟ้มที่ใช้สำหรับระบบปฎิบัติการ classic Mac เพื่อไปใช้ใน Linux จะใช้การเปลี่ยนอักขระแทนที่จะเป็นการเพิ่มหรือลด โดยเราจะเปลี่ยนจากอักขระ CR ทุกๆ ตัวให้เป็น LF
ผมต้องขอย้ำอีก ครั้งว่าในบทความนี้ คำว่า Mac OS X และ Linux สามารถใช้แทนกันได้ เพื่อคุณเห็นตัวใดตัวหนึ่งก็แสดงว่าอีกตัวสามารถทำแบบเดียวกันได้
และในทางกลับกันหากจะเปลี่ยนแฟ้มในระบบ classic Mac มาเป็น Linux คุณก็ต้องแทนอักขระ LF ด้วย CR
มันไม่ยากอย่างที่คิด
ข้อ แนะนำคนทั่วไปคือ การเปลี่ยนแปลงแฟ้ม Text File ระหว่างระบบปฎิบัติการไม่ยากอย่างที่คิด คนส่วนมากใช้การถ่ายโอนผ่าน FTP ซึ่งโปรแกรมนี้จะแปลงรูปแบบแฟ้มให้คุณโดยอัติโนมัติ
FTP มีโหมดกาำรทำงานพื้นฐานสองโหมด คือ โหมด Binary และโหมด ASCII (อ่านว่า แอสกี) ซึ่งในโหมดหลังนี้จะมีการเปลี่ยนอักระสิ้นสุดบรรทัดให้คุณโดยอัติโนมัติ ในขณะที่โหมดแรกนั้นจะไม่มีการเปลี่ยนแปลงใดๆ กับแฟ้มของคุณ
ต้องย้ำ อีกครั้งว่า เมื่อคุณอ่านโอนแฟ้ม Text File คุณต้องกำหนดให้มีการถ่ายโอนในโหมด ASCII เมื่อคุณถ่ายโอนแฟ้มแบบอื่นๆ เช่น รูป, ภาพ, เสียง ฯลฯ คุณต้องกำหนดให้มีการถ่ายโอนในโหมด Binary หากคุณไม่ทำเช่นนี้แฟ้มที่ถูกถ่ายโอนจะไม่สามารถอ่านได้อย่างถูกต้องเมื่อนำ มาใช้งาน
สรุป
มีอักขระ สองตัวที่คุณต้องจำเมื่อต้องแปลงแฟ้มจากระบบปฏิบัติการหนึ่งไปอีกระบบ ปฏิบัติการหนึ่งนั่นคือ CL และ LF แต่ส่วนที่อยากคือต้องจะว่าระบบปฏิบัติการไหน ใช้อักขระตัวไหนในการกำหนดการสิ้นสุดบรรทัด