Ký tự toàn độ và bán độ
ABC123 và ABC123 trông gần như giống hệt, nhưng với máy tính chúng là những ký tự khác nhau. Bài hướng dẫn này giải thích ký tự toàn độ (full-width) và bán độ (half-width) từ đâu mà có, vì sao biểu mẫu và công cụ tìm kiếm gặp lỗi với chúng, katakana bán độ viết ガ bằng hai ký tự như thế nào, và những ký tự trông giống nhưng không phải là một cặp.
Vì sao có hai độ rộng
Trong văn bản tiếng Nhật, tiếng Trung và tiếng Hàn, mỗi chữ chiếm một ô vuông. Máy tính Nhật thời kỳ đầu có hai loại bộ ký tự: bộ một byte JIS X 0201 gồm chữ Latin, chữ số và một ít katakana chỉ chiếm nửa ô, và các bộ hai byte như JIS X 0208 gồm chữ Hán, kana và một bản sao thứ hai của chữ cái, chữ số chiếm trọn một ô. Chuẩn KS X 1001 của Hàn Quốc cũng có bản sao toàn độ của bảng chữ cái Latin.
Unicode giữ lại cả hai bản để văn bản cũ có thể chuyển đổi mà không mất dữ liệu. Dạng toàn độ của các ký tự ASCII (U+FF01–FF5E) và katakana bán độ (U+FF61–FF9F) nằm trong khối "Halfwidth and Fullwidth Forms", và cơ sở dữ liệu ký tự Unicode ghi rõ mỗi ký tự tương ứng với ký tự thông thường nào. Công cụ chuyển đổi dựa vào bảng ghi này.
Những ký tự có dạng toàn độ và bán độ
| Loại | Toàn độ | Bán độ |
|---|---|---|
| Chữ Latin | ABC abc | ABC abc |
| Chữ số | 0123 | 0123 |
| Ký hiệu ASCII | !?@#()-/ | !?@#()-/ |
| Khoảng trắng | U+3000 (khoảng trắng toàn độ) | U+0020 |
| Ký hiệu tiền tệ | ¥ ¢ £ | ¥ ¢ £ |
| Katakana | カタカナ ガ パ | カタカナ ガ パ |
| Dấu câu tiếng Nhật | 。「」、・ー | 。「」、・ー |
Chữ Hán, hiragana và âm tiết Hangul chỉ có một độ rộng. Không có hiragana bán độ, và các katakana nhỏ ヵ, ヶ, ヮ cùng các chữ cổ ヰ, ヱ cũng không có dạng bán độ. Chữ tiếng Việt có dấu không thuộc khối này nên không bị ảnh hưởng.
Khi nào sự khác biệt gây phiền toái
- Biểu mẫu. Ô chỉ nhận chữ số sẽ từ chối 090, và số điện thoại, mã bưu chính hay số thẻ sao chép từ trang tiếng Nhật thường là toàn độ. Đổi sang bán độ là xong.
- Tìm kiếm và trùng lặp. Tìm ABC không phải lúc nào cũng ra ABC, và danh sách khách hàng có thể lưu cùng một tên hai lần với hai độ rộng.
- Trình bày. Chữ toàn độ chen trong văn bản tiếng Việt trông thưa, katakana bán độ trong văn bản tiếng Nhật trông chật.
- Hệ thống có quy định riêng. Một số biểu mẫu Nhật yêu cầu cách đọc tên (フリガナ) bằng katakana toàn độ, số khác bằng hiragana, và vài hệ thống cũ chỉ nhận katakana bán độ. Hãy làm theo hướng dẫn của biểu mẫu.
Katakana bán độ và dấu đục
Katakana bán độ không có chữ âm đục riêng. ガ được viết bằng hai ký tự, カ và dấu ゙, còn パ là ハ và dấu ゚. Công cụ tốt sẽ ghép cặp này thành một chữ toàn độ và tách ra lại khi đổi về bán độ. Vì vậy số ký tự thay đổi: ガッコウ có năm ký tự, ガッコウ có bốn.
Dấu không ghép được với chữ trước nó, như trong ア゙, sẽ đứng riêng (ア゛). ヴ thành ヴ, ヷ và ヺ thành ヷ và ヺ.
Những ký tự giống nhau nhưng không phải là cặp
| Ký tự | Là gì | Có cặp bán độ? |
|---|---|---|
| ~ (U+FF5E) | Dấu ngã toàn độ | Có: ~ |
| 〜 (U+301C) | Dấu sóng, dấu câu tiếng Nhật | Không |
| - (U+FF0D) | Gạch nối toàn độ | Có: - |
| ー (U+30FC) | Dấu trường âm katakana | Chỉ có ー (katakana bán độ) |
| " ' | Dấu nháy thẳng toàn độ | Có: " ' |
| “ ” ‘ ’ | Dấu ngoặc kép cong | Không |
Dấu gạch chéo ngược là trường hợp đặc biệt. JIS X 0201 đặt ký hiệu yên vào đúng mã mà ASCII dùng cho dấu gạch chéo ngược, nên một số phông chữ tiếng Nhật đến nay vẫn vẽ dấu này thành ¥. Ký tự vẫn là một, chỉ có hình vẽ khác.
Hiragana và katakana
Mỗi hiragana từ ぁ đến ゖ đều có một katakana cùng tên, và Unicode xếp chúng cách nhau đúng 96 vị trí, nên việc chuyển đổi chính xác: やまだ たろう thành ヤマダ タロウ. Dấu trường âm ー dùng chung cho cả hai nên giữ nguyên. Katakana không có hiragana tương ứng, như ヷ, vẫn là katakana.
Dành cho lập trình viên: chuẩn hóa thay đổi nhiều hơn
Dạng chuẩn hóa Unicode NFKC cũng đổi chữ toàn độ sang bán độ và ghép ガ thành ガ, nhưng đồng thời thay đổi nhiều ký tự khác: ① thành 1, № thành No, ㈱ thành (株), ㍻ thành 平成. Hãy dùng nó khi bạn muốn tất cả những điều đó, ví dụ để so sánh khóa tìm kiếm. Nếu chỉ muốn đổi độ rộng, hãy chỉ chuyển các cặp toàn độ, bán độ và giữ nguyên phần còn lại.
Câu hỏi thường gặp
Vì sao biểu mẫu báo số của tôi không hợp lệ dù nhìn vẫn đúng?
Có lẽ số đó chứa chữ số toàn độ sao chép từ trang khác. Hãy đưa nó qua công cụ với chế độ "Bán độ" rồi dán lại.
Đổi sang bán độ có làm thay đổi chữ tiếng Việt có dấu không?
Không. Chữ Latin có dấu, chữ Hán, hiragana và Hangul không có dạng bán độ nên giữ nguyên.
Khoảng trắng toàn độ có bằng hai khoảng trắng không?
Không. Đó là một ký tự (U+3000) rộng bằng một chữ Hán. Khi đổi, nó thành một khoảng trắng thường chứ không phải hai.
Vì sao biểu mẫu Nhật không nhận katakana của tôi?
Có thể biểu mẫu cần katakana toàn độ trong khi bạn gõ bán độ, hoặc ngược lại, hoặc không nhận chữ nhỏ như ァ và ッ. Hãy đọc hướng dẫn cạnh ô nhập.