Dấu ngoặc kép (Quotation Mark)

Ký hiệu dùng để đánh dấu trích dẫn, hội thoại, nhấn mạnh trong văn bản. Hình dạng khác nhau tùy ngôn ngữ và khu vực: "" '' (tiếng Anh), « » (tiếng Pháp), 「」『』(tiếng Nhật).

Dấu ngoặc kép (quotation mark) là dấu câu dùng để đánh dấu lời trích dẫn, tên tác phẩm, hoặc từ ngữ được sử dụng với nghĩa đặc biệt. Tiếng Việt sử dụng dấu ngoặc kép "" (ngoặc kép) và dấu ngoặc đơn '' (ngoặc đơn), tương tự tiếng Anh. Tiếng Nhật dùng 「」và 『』, tiếng Pháp dùng « ». Mỗi ngôn ngữ có quy tắc riêng về hình dạng và cách sử dụng dấu ngoặc kép, nên xử lý văn bản đa ngôn ngữ cần đặc biệt chú ý.

Trong tiếng Việt, dấu ngoặc kép "" dùng cho trích dẫn trực tiếp, lời thoại, và nhấn mạnh từ ngữ. Dấu ngoặc đơn '' dùng cho trích dẫn bên trong trích dẫn. Tên tác phẩm thường được đặt trong dấu ngoặc kép hoặc in nghiêng. Khác với tiếng Nhật sử dụng dấu ngoặc vuông 「」cho hội thoại, tiếng Việt dùng dấu gạch ngang đầu dòng (-) hoặc dấu ngoặc kép "" cho lời thoại trong văn học.

Tiếng Anh phân biệt "smart quote" (curly quote) và "straight quote". Smart quote (" " ' ') có hình dạng mở và đóng khác nhau, dùng trong xuất bản và trình xử lý văn bản. Straight quote (" ') là dấu thẳng từ thời máy đánh chữ, dùng trong lập trình và plain text. Trong Unicode, đây là các ký tự khác nhau và được đếm riêng biệt.

Trong lập trình, dấu ngoặc kép là ký tự phân cách chuỗi ký tự (string literal). JavaScript cho phép "hello", 'hello', `hello` (template literal). Python cũng dùng "' tương đương, nhưng khi chuỗi chứa dấu ngoặc kép bên trong thì cần escape (\") hoặc dùng loại dấu ngoặc khác để bao bọc. Đối với lập trình viên Việt Nam, cần lưu ý rằng bộ gõ tiếng Việt đôi khi tự động chuyển straight quote thành smart quote, gây lỗi cú pháp.

"Chuyển đổi thông minh" dấu ngoặc kép là bẫy trong đếm ký tự. Microsoft Word và macOS tự động chuyển straight quote thành smart quote. Straight quote " (U+0022) chiếm 1 byte (ASCII), nhưng smart quote \u201c (U+201C) chiếm 3 byte trong UTF-8. Khi sao chép và dán văn bản, smart quote lẫn vào có thể gây cắt ngắn bất ngờ với giới hạn ký tự dựa trên byte.

Trong đa ngôn ngữ, số loại dấu ngoặc kép còn nhiều hơn. Tiếng Pháp dùng guillemet « », tiếng Đức dùng „" và ‚', tiếng Trung dùng 「」và 『』(cùng hình dạng với tiếng Nhật nhưng cách dùng khác), tiếng Nga dùng « » và „". Khi bản địa hóa (localization), quên chuyển đổi dấu ngoặc kép sẽ làm giảm chất lượng văn bản. Tiếng Việt may mắn sử dụng cùng kiểu dấu ngoặc kép với tiếng Anh, nên ít gặp vấn đề chuyển đổi hơn.

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