Nhìn vào unicode standard, họ khuyên bạn nên sử dụng đồng bằng char
s để lưu trữ chuỗi được mã hóa UTF-8. Điều này làm việc như mong đợi với C + + và cơ bản std::string
, hoặc làm trường hợp tồn tại, trong đó mã hóa UTF-8 có thể tạo ra vấn đề?Cách tốt nhất để lưu trữ chuỗi UTF-8 trong bộ nhớ trong C/C++ là gì?
Ví dụ: khi tính toán độ dài, nó có thể không giống với số byte - cách xử lý này phải được xử lý như thế nào? Đọc tiêu chuẩn, tôi có thể sử dụng mảng char
để lưu trữ, nhưng tôi vẫn sẽ cần phải viết các hàm như strlen
v.v. của riêng tôi, hoạt động trên văn bản được mã hóa, vì tôi hiểu được vấn đề, tiêu chuẩn các thường trình chỉ là ASCII, hoặc mong đợi các chữ số rộng (16 bit trở lên), không được tiêu chuẩn unicode đề xuất. Cho đến nay, nguồn tốt nhất mà tôi tìm thấy về những thứ mã hóa là một bài đăng trên Joel's on Software, nhưng nó không giải thích những gì chúng tôi nghèo C++ phát triển nên sử dụng :)
Đây có lẽ là cách để đi. Ngoài ra còn có thư viện ICU, mà nhiều hơn hoặc ít hơn cùng một điều. – sastanin