Chữ ghép là các ký tự Unicode được biểu thị bằng nhiều hơn một điểm mã. Ví dụ: trong Devanagari त्र
là một đường bao gồm các điểm mã त + ् + र
.Phát hiện chữ ligatures Unicode trong Clojure/Java
Khi nhìn thấy trong các trình chỉnh sửa tệp văn bản đơn giản như Notepad, त्र
được hiển thị là त् + र
và được lưu trữ dưới dạng ba ký tự Unicode. Tuy nhiên, khi cùng một tệp được mở trong Firefox, nó được hiển thị dưới dạng một kết nối thích hợp.
Vì vậy, câu hỏi của tôi là, cách phát hiện các chữ ghép đó theo chương trình khi đọc tệp từ mã của tôi. Kể từ khi Firefox làm điều đó, phải tồn tại một cách để làm điều đó theo lập trình. Có bất kỳ thuộc tính Unicode nào chứa thông tin này hoặc tôi có cần phải có một bản đồ cho tất cả các chữ ghép đó không?
Thuộc tính CSS SVG text-rendering
khi được đặt thành optimizeLegibility
thực hiện điều tương tự (kết hợp các điểm mã vào đúng kết nối).
PS: Tôi đang sử dụng Java.
EDIT
Mục đích của mã của tôi là để đếm số ký tự trong văn bản Unicode giả định một dấu gạch nối để trở thành một nhân vật duy nhất. Vì vậy, tôi cần một cách để thu gọn nhiều điểm mã vào một dây chằng duy nhất.
Bạn có thể giải thích lý do bạn cần điều đó không? Tôi hỏi điều này vì không có cách nào dễ dàng để làm điều này. – sorin
@SorinSbarnea: Tôi đã thêm mục đích vào bài đăng. –
Tôi không nghĩ rằng có rất nhiều hy vọng để thực hiện xử lý kịch bản phức tạp một mình. Sử dụng một trong các thư viện hiện có như Uniscribe hoặc libfreetype. – Philipp