เครื่องหมายคำพูดโค้งและขีดทำโค้งพัง: วิธีแก้ให้เป็นแบบตรง
เครื่องหมายคำพูดโค้ง เครื่องหมายอัญประกาศเดี่ยวโค้ง ขีดสั้น (en dash) ขีดยาว (em dash) และช่องว่างแบบไม่ตัดคำ ดูเหมือนตัวอักษรธรรมดา แต่คอมพิวเตอร์มองเป็นคนละตัว โค้ด ไฟล์ CSV สูตรในสเปรดชีต และบรรทัดคำสั่งต้องการตัวอักษรแบบธรรมดา คำที่คัดลอกมาจะหยุดเป็นสตริง ขีดคู่หน้าตัวเลือกจะกลายเป็นขีดยาว และช่องว่างแบบไม่ตัดคำอาจทำให้โปรแกรมอ่านบรรทัดนั้นไม่ได้ ปรับอักขระให้เป็นแบบตรงก่อนวางลงในโค้ด แล้วทดสอบผลลัพธ์ในที่ที่จะใช้งานจริง
แก้ข้อความที่วางมาข้อความที่วางมามีบรรทัดขาดช่วงใช้ฟรีอักขระเหล่านี้มาจากไหน
โปรแกรมประมวลผลคำและอีเมลหลายตัวจะเปลี่ยนเครื่องหมายคำพูดแบบตรงเป็นแบบโค้งขณะที่คุณพิมพ์ เรียกว่าสมาร์ทควอทส์ (smart quotes) Word ยังเปลี่ยนขีดคู่เป็นขีดยาวได้ด้วย ส่วนเว็บไซต์และตัวแก้ไขบางตัวใส่ช่องว่างแบบไม่ตัดคำ (U+00A0) ซึ่งทำให้คำสองคำอยู่บรรทัดเดียวกัน อักขระเหล่านี้ถูกต้องสำหรับการจัดรูปแบบตัวพิมพ์ จึงปรากฏขึ้นมา แต่ผิดสำหรับทุกอย่างที่โปรแกรมต้องอ่าน
อะไรเสีย และเสียที่ไหน
| ที่ไหน | สิ่งที่ผิดพลาด |
|---|---|
| โค้ดต้นฉบับ | เครื่องหมายคำพูดโค้งไม่ใช่ตัวปิดสตริง และหลายภาษาไม่ยอมรับเครื่องหมายคำพูดโค้งหรือช่องว่างแบบไม่ตัดคำนอกสตริง |
| คำสั่งเชลล์ | ขีดสั้นที่พิมพ์เป็น en dash ไม่ใช่ตัวบอกตัวเลือก โปรแกรมจึงเห็นเป็นอาร์กิวเมนต์ที่ไม่รู้จัก |
| ไฟล์ CSV | ตัวแยกข้อมูลจะครอบฟิลด์ด้วยเครื่องหมายคำพูดคู่แบบตรง ดังนั้นเครื่องหมายคำพูดโค้งจะไม่ป้องกันเครื่องหมายจุลภาคภายในฟิลด์ |
| สูตรในสเปรดชีต | เครื่องหมายคำพูดโค้งกลายเป็นส่วนหนึ่งของข้อความ หรือสูตรแจ้งข้อผิดพลาด |
| JSON | เครื่องหมายคำพูดโค้งไม่ใช่ตัวปิดสตริงที่ถูกต้อง ตัวแยกวิเคราะห์จึงล้มเหลว |
กฎการใส่เครื่องหมายคำพูดที่ไฟล์ CSV ใช้ ดูได้ในคู่มือ CSV เป็น JSON
ปรับให้เป็นแบบตรงใน fixmint
มีเครื่องมือสามตัวที่ครอบคลุมกรณีที่พบบ่อย และแต่ละตัวจัดการอักขระคนละชุด
- เครื่องหมายคำพูดโค้ง เปิดแก้ข้อความที่วางมา แล้วติ๊ก ปรับเครื่องหมายคำพูดโค้งให้เป็นแบบตรง เครื่องมือจะเปลี่ยนเครื่องหมายอัญประกาศเดี่ยวโค้งและเครื่องหมายอะpostrophe โค้งเป็นเครื่องหมายอัญประกาศเดี่ยวแบบตรง และเปลี่ยนเครื่องหมายอัญประกาศคู่โค้งเป็นเครื่องหมายอัญประกาศคู่แบบตรง ขีดจะไม่ถูกแตะต้อง ตัวเลือกอื่น เช่น ตัดช่องว่างหัวท้ายบรรทัดและยุบช่องว่างซ้ำ ถูกติ๊กไว้เป็นค่าเริ่มต้นอยู่แล้ว
- ขีด จุดไข่ปลา และช่องว่างแปลก ๆ เปิดลบอักขระที่มองไม่เห็น แล้วติ๊ก แปลงเครื่องหมายคำพูดโค้ง ขีดสั้น/ขีดยาว และ … ให้เป็น ASCII ธรรมดาด้วย ขีดจะกลายเป็นขีดเดียว และจุดไข่ปลากลายเป็นจุดสามจุด ช่องว่างแบบไม่ตัดคำจะกลายเป็นช่องว่างปกติเป็นค่าเริ่มต้น มุมมองที่ทำเครื่องหมายจะแสดงว่าแต่ละการเปลี่ยนแปลงเกิดขึ้นตรงไหน
- อักขระหรือวลีเดียว เปิดค้นหาและแทนที่ข้อความ ปล่อย Regex ไว้ไม่เลือก แล้วพิมพ์อักขระในช่อง Find และพิมพ์แบบธรรมดาในช่อง Replace เมื่อปิด Regex ช่อง Find จะจับคู่ตามตัวอักษรตรง ๆ เครื่องหมายคำพูดโค้งจึงจับคู่กับตัวมันเองเท่านั้น
นี่คือผลของเครื่องมือตัวที่สองกับข้อความที่วางมาทั่วไป:
| ก่อน | หลัง |
|---|---|
| “Hello,” she said. | "Hello," she said. |
| It’s done. | It's done. |
| —verbose | -verbose |
แถวสุดท้ายแสดงข้อจำกัด ขีดแต่ละขีดจะกลายเป็นขีดเดียว ดังนั้นขีดคู่ที่โปรแกรมประมวลผลคำรวมเป็นขีดยาวหนึ่งขีดจะกลับมาเป็นขีดเดียว ให้แก้ตัวเลือกอย่าง --verbose ด้วยตนเองหลังการแปลง
วางผลลัพธ์ในที่ที่จะใช้งาน แล้วทดสอบตรงนั้น การทำให้เป็นแบบตรงไม่เปลี่ยนความหมายของข้อความ ดังนั้นการรันผ่านคือการตรวจสอบที่แท้จริง
ตรวจสอบผลลัพธ์
รันข้อความที่ปรับแล้วผ่าน ลบอักขระที่มองไม่เห็น อีกครั้ง แล้วอ่านมุมมองที่ทำเครื่องหมาย เครื่องหมายใดที่ยังเหลืออยู่แสดงว่าเป็นอักขระที่รอบแรกไม่ได้ครอบคลุม เช่น ช่องว่างความกว้างศูนย์หรือช่องว่างแปลก ๆ มุมมองจะบอกตำแหน่งของแต่ละตัว คุณจึงแก้ได้ตรงที่
อักขระเหล่านี้ดูเหมือนกันเกือบทุกประการบนหน้าจอ การตรวจด้วยสายตาจึงพลาดได้ เครื่องหมายคำพูดแบบตรงกับแบบโค้งต่างกันเล็กน้อยในรูปทรง และขีดสั้นดูเหมือนขีดในฟอนต์จำนวนมาก ให้ทดสอบข้อความ ไม่ใช่ทดสอบด้วยตา
เมื่อไม่ควรปรับให้เป็นแบบตรง
ให้คงเครื่องหมายคำพูดโค้งและขีดไว้ในข้อความที่คนอ่านบนสิ่งพิมพ์หรือหน้าเว็บ เพราะนั่นคือการจัดรูปแบบตัวพิมพ์ที่ถูกต้อง ปรับให้เป็นแบบตรงเฉพาะข้อความที่จะเข้าไปในโค้ด CSV สูตร หรือคำสั่ง สำหรับข้อความที่คุณเขียนในโปรแกรมประมวลผลคำ ให้ปิดตัวเลือกสมาร์ทควอทส์ไว้หากคุณจะวางข้อความนั้นในโค้ดภายหลัง
กรณีพิเศษ
- เครื่องหมายคำพูดผสมกัน เอกสารอาจมีทั้งเครื่องหมายคำพูดโค้งและแบบตรงปนกัน รันขั้นตอนการทำให้เป็นแบบตรงหนึ่งครั้ง แล้วค้นหาผลลัพธ์เพื่อดูว่ามีตัวใดเหลืออยู่ เพราะแหล่งที่มาต่างกัน
- เครื่องหมายอะพอสทรอฟีในคำ เครื่องหมายอะพอสทรอฟีโค้งในคำย่อจะกลายเป็นแบบตรง ซึ่งเป็นสิ่งที่โค้ดส่วนใหญ่คาดหวัง ตรวจคำย่อที่ปรากฏอยู่ภายในสตริงด้วย
- เก็บต้นฉบับไว้ การทำให้เป็นแบบตรงทำได้ทางเดียว เครื่องหมายคำพูดแบบตรงไม่สามารถบอกได้ว่ามาจากเครื่องหมายคำพูดโค้งตัวไหน จึงควรเก็บเอกสารต้นฉบับไว้ และทำการเปลี่ยนแปลงบนสำเนา
- ขีดในประโยค ขีดยาวที่ใช้แบ่งจังหวะในประโยคจะกลายเป็นขีดเดียว เช่น "wait — stop" จะกลายเป็น "wait - stop" พิมพ์ใหม่ด้วยมือหากข้อความนั้นมีไว้อ่าน ไม่ใช่ใช้ในโค้ด
- อักขระที่มองไม่เห็น ข้อความที่วางมาอาจมีช่องว่างความกว้างศูนย์ด้วย ซึ่งไม่ใช่เครื่องหมายคำพูด แต่ทำให้โค้ดพังในลักษณะคล้ายกันคู่มืออักขระที่ซ่อนในข้อความครอบคลุมเรื่องนี้
แปลจาก ฉบับภาษาอังกฤษ ด้วยความช่วยเหลือของ AI
ความคิดเห็น
ยังไม่มีความคิดเห็น มาเป็นคนแรกกันเลย


