Tôi cần một thư viện Unicode tốt cho C++. Tôi cần:Có STL và UTF-8 thân thiện với C++ Wrapper cho ICU hay thư viện Unicode mạnh mẽ khác
- Biến đổi theo cách nhạy cảm với Unicode. Ví dụ, sắp xếp tất cả các chuỗi theo cách không phân biệt chữ hoa chữ thường và lấy ký tự đầu tiên của chúng cho chỉ mục. Chuyển đổi các chuỗi Unicode khác nhau thành chữ hoa và chữ thường. Tách văn bản ở vị trí hợp lý - các từ cũng sẽ hoạt động tốt cho tiếng Trung và tiếng Nhật.
- Số định dạng, ngày tháng theo cách nhạy cảm miền địa phương (nên là chủ đề an toàn).
- Hỗ trợ minh bạch UTF-8 (biểu diễn nội bộ chính).
Theo như tôi biết thư viện tốt nhất là ICU. Tuy nhiên, tôi không thể tìm thấy tài liệu API thân thiện với nhà phát triển thông thường với các ví dụ. Cũng như xa như tôi thấy, nó không phải là quá thân thiện với hiện đại C + + thiết kế, làm việc với STL và như vậy. Như thế này:
std::string msg;
unistring umsg.from_utf8(msg);
unistring::word_iterator wi;
for(wi=umsg.words().begin(),n=0;wi!=usmg.words().wi_end(),n<10;++wi,++n)
;
msg=umsg.substr(umsg.words().begin(),wi).to_utf8();
cout<<_("Five 10 words are ")<<msg;
Có trình bao bọc ICU thân thiện với STL được phát hành theo giấy phép nguồn mở không? Ưu tiên là một giấy phép được phép như MIT hoặc Boost, nhưng những giấy phép khác, giống như LGPLv2 tương thích, cũng OK.
Có thư viện chất lượng cao khác tương tự như ICU không?
Nền tảng: Unix/POSIX, không cần hỗ trợ Windows.
Chỉnh sửa: tiếc là tôi chưa đăng nhập, vì vậy tôi không thể chấp nhận câu trả lời. Tôi đã tự mình đính kèm câu trả lời.
Ooh, 1 cho câu hỏi này. Đó là khó hiểu rằng một thư viện lớn như ICU hoàn toàn không theo các thành ngữ C++ phổ biến. – jalf