Tôi vẫn đang cố gắng quyết định xem dự án (nhà) của tôi có nên sử dụng các chuỗi UTF-8 (được triển khai dưới dạng chuỗi std :: với các hàm UTF-8 cụ thể khi cần thiết) hay chuỗi 16 bit (được triển khai dưới dạng std: : wstring). Dự án là một ngôn ngữ lập trình và môi trường (như VB, nó là sự kết hợp của cả hai).Chuỗi C++: mã hóa UTF-8 hoặc 16 bit?
Có một vài điều ước/hạn chế:
- Nó sẽ là tuyệt vời nếu nó có thể chạy trên các phần cứng hạn chế, chẳng hạn như máy tính với bộ nhớ hạn chế.
- Tôi muốn mã chạy trên Windows, Mac và (nếu tài nguyên cho phép) Linux.
- Tôi sẽ sử dụng wxWidgets làm lớp GUI, nhưng tôi muốn mã tương tác với bộ công cụ đó được giới hạn ở một góc của codebase (tôi sẽ có các tệp thi hành không phải GUI).
- Tôi muốn tránh làm việc với hai loại chuỗi khác nhau khi làm việc với văn bản có thể nhìn thấy của người dùng và với dữ liệu của ứng dụng.
Hiện tại, tôi đang làm việc với std :: string, với mục đích sử dụng các chức năng thao tác UTF-8 chỉ khi cần thiết. Nó đòi hỏi bộ nhớ ít hơn, và dường như là hướng nhiều ứng dụng đang đi anyway.
Nếu bạn đề xuất mã hóa 16 bit, cái nào: UTF-16? UCS-2? Một cái khác?
Micro ATX không có nghĩa là bộ nhớ bị giới hạn. PC của tôi ở nhà là trên một (Micro-ATX) ASUS M2A-VM, và nó chạy Crysis tốt. – notJim
Tôi đã chỉnh sửa câu hỏi để xóa lỗi. –