Chữ i trong tiếng Thổ Nhĩ Kỳ
(en.wikipedia.org)Khi xử lý quốc tế hóa phần mềm, điều đặc biệt rắc rối là tình huống nó hoạt động trong gần như mọi ngôn ngữ nhưng lại không hoạt động chỉ với một vài ngôn ngữ (thậm chí có thể chỉ đúng một ngôn ngữ). Ví dụ tiêu biểu là hai loại chữ i chỉ xuất hiện trong tiếng Thổ Nhĩ Kỳ và tiếng Azerbaijan. Trong bảng chữ cái Latinh, chỉ có chữ thường i có chấm và chữ hoa I không chấm, nhưng trong các ngôn ngữ này, chữ không chấm ı/I và chữ có chấm i/İ tạo thành các cặp riêng biệt. Ví dụ điển hình là trong "İstanbul", chữ cái đầu tiên là chữ hoa có chấm İ.
Trong Unicode, vì i/I của tiếng Thổ Nhĩ Kỳ và tiếng Azerbaijan không được mã hóa riêng (vì xét cho cùng chúng vẫn là cùng một chữ cái Latinh), nên phần mềm không tính đến các ngôn ngữ đó thường phát sinh vấn đề, thậm chí đã từng dẫn đến tai nạn chết người. [1] Để xử lý đúng, cần dùng thư viện Unicode có xét đến thông tin văn hóa (locale). Trong các ngôn ngữ/môi trường có xử lý locale như Java hay C#, đây không phải vấn đề lớn; còn ở nơi khác thì cần thư viện riêng như ICU.
[1] https://gizmodo.com/a-cellphones-missing-dot-kills-two-people-puts-thr…
1 bình luận
Tiếng Thổ Nhĩ Kỳ... Tôi nhớ đã từng rất vất vả vì các từ có quá nhiều ký tự, khiến phải đau đầu với độ rộng của nhãn/nút...