2013-06-25 40 views
12

Tôi cần các chức năng để chuyển đổi giữa một ký tự (ví dụ: 'α') và tên Unicode đầy đủ của nó (ví dụ: "GREEK SMALL LETTER ALPHA") theo cả hai hướng.Làm thế nào để chuyển đổi một char thành tên Unicode đầy đủ của nó?

Giải pháp mà tôi đưa ra là thực hiện tra cứu trong chuẩn Unicode chính thức có sẵn trực tuyến: http://www.unicode.org/Public/6.2.0/ucd/UnicodeData.txt, hoặc, trong bản sao cục bộ được lưu trong bộ nhớ cache, có thể được chuyển đổi thành bộ sưu tập phù hợp trước để cải thiện hiệu suất tra cứu).

Có cách nào đơn giản hơn để thực hiện các chuyển đổi này không? Tôi thích một giải pháp trong C#, nhưng các giải pháp bằng các ngôn ngữ khác có thể thích ứng với C#/.NET cũng được hoan nghênh. Cảm ơn!

+0

Giải pháp bạn có âm thanh hoàn toàn tốt với tôi, thành thật mà nói. Định dạng tệp trông có vẻ đơn giản và tôi không nghĩ có gì khác trong khung công tác. –

+0

Liên kết mà bạn trỏ đến chỉ giống như 1 triệu đầu tiên và dễ dàng phù hợp với từ điển. Ký tự phải là duy nhất để sử dụng nó làm khóa trong Từ điển. Đối với mô tả - nếu nó là duy nhất có thể bao gồm một từ điển đảo ngược thứ hai cho tốc độ nhưng điều đó sẽ tăng gấp đôi bộ nhớ. – Paparazzi

+0

@Blam "chỉ giống như 1 triệu đầu tiên" (chính xác hơn là 1114109) là ** tất cả chúng **. –

Trả lời

0

nếu bạn không muốn giữ bảng tên unicode trong bộ nhớ, chỉ cần chuẩn bị tệp văn bản trong đó bù trừ giá trị unicode nhân với tên độ dài unicode tối đa sẽ trỏ đến tên unicode. cho tối đa 4 byte chiều dài nó sẽ không được mroe hơn vài megabyte. Nếu bạn muốn có thực hiện nhỏ gọn hơn sau đó nhóm địa chỉ offset trong tập tin để unicode tên lúc bắt đầu tập tin được lập chỉ mục bởi giá trị unicode sau đó thưởng thức bảng tên nhỏ gọn hơn. nhưng bạn phải chuẩn bị tập tin như vậy mặc dù nó không phải là khó khăn.

+0

Yêu cầu là cả hai hướng. – Paparazzi

+0

Đúng, bạn đang viết, chúng tôi có thể tạo một tệp khác với chỉ số bằng giá trị băm của tên unicode :-). mặc dù giải pháp được tham chiếu trong nhận xét cho câu hỏi sử dụng từ điển lib sẵn có, điều này là tốt hơn tất nhiên so với việc chế tạo xe đạp từ đầu. nhưng tôi luôn thích nghệ thuật thiết kế cấu trúc dữ liệu. –

Các vấn đề liên quan