Dấu gạch ngang (Hyphen & Dash)

Các ký hiệu đường ngang dùng để nối từ, biểu thị phạm vi, hoặc ngắt mệnh đề chèn trong văn bản. Dấu gạch nối (-), en dash (-) và em dash (-) trông giống nhau nhưng là các ký tự Unicode khác nhau.

Dấu gạch ngang và dấu gạch nối là nhóm ký hiệu đường ngang thường bị nhầm lẫn do hình dạng tương tự. Trong Unicode, chúng được phân biệt rõ ràng: hyphen-minus (U+002D), hyphen (U+2010), en dash (U+2013), em dash (U+2014) và horizontal bar (U+2015). Mỗi loại có công dụng riêng, và việc sử dụng đúng ảnh hưởng trực tiếp đến chất lượng trình bày văn bản.

Hyphen-minus "-" (U+002D) là ký tự đường ngang duy nhất trong bảng ASCII, có thể nhập trực tiếp từ bàn phím. Trong lập trình, nó đóng vai trò toán tử trừ; trong URL và tên tệp, nó phân tách các từ. Về bản chất, đây là ký tự thỏa hiệp giữa dấu gạch nối và dấu trừ, nhưng trên thực tế nó đáp ứng phần lớn nhu cầu sử dụng.

En dash "-" (U+2013) dùng để biểu thị phạm vi (ví dụ: 1990-2000, trang 10-20) hoặc sự đối lập (ví dụ: Hà Nội-TP.HCM). Em dash "-" (U+2014) dùng để ngắt mệnh đề chèn hoặc biểu thị sự gián đoạn trong câu. Trong xuất bản tiếng Anh, quy tắc sử dụng này được tuân thủ nghiêm ngặt, nhưng trên web và văn bản thông thường, hyphen-minus thường được dùng thay thế.

Trong tiếng Việt, dấu gạch ngang được sử dụng phổ biến trong hội thoại (đánh dấu lời nói trực tiếp), liệt kê và chú thích. Tiêu chuẩn TCVN quy định dấu gạch ngang dài hơn dấu gạch nối, nhưng trên thực tế nhiều người dùng hyphen-minus cho cả hai mục đích. Khi soạn thảo văn bản tiếng Việt bằng phương pháp Telex hoặc VNI, dấu gạch ngang thường phải nhập thủ công vì bàn phím không có phím riêng cho en dash hay em dash.

Về đếm ký tự, tất cả các loại đường ngang đều được tính là 1 ký tự, nhưng kích thước byte khác nhau. Hyphen-minus (U+002D) chiếm 1 byte trong UTF-8, trong khi en dash (U+2013) và em dash (U+2014) chiếm 3 byte. Khi áp dụng giới hạn ký tự theo byte, loại dấu gạch ngang sử dụng sẽ ảnh hưởng đến số byte tiêu thụ.

Trong lập trình, việc sử dụng hyphen-minus trong tên định danh phụ thuộc vào ngôn ngữ. CSS cho phép dấu gạch nối trong tên class và thuộc tính (kebab-case), nhưng JavaScript không cho phép trong tên biến. Trong URL, dấu gạch nối được khuyến nghị sử dụng (SEO đánh giá cao hơn dấu gạch dưới), và trong tên miền cũng được phép (trừ vị trí đầu và cuối).

Chia sẻ bài viết này