Lấy chính xác độ dài string unicode

Chào ae, mình đang gặp 1 vấn đề này,

mình có 1 string tiếng việt là :“TRỨNG PS”.

string str = "Trứng PS";
size_t len =  str.length();
size_t sz = str.size();

thì cả 2 đều trả về là 10 trong khi mong muốn output là 8, debug thì thấy chuỗi là: “TRỨNG PS”

mình có dùng thư viện codevt

 	std::wstring_convert< std::codecvt_utf8<unsigned int>, unsigned int > conv;
 	size_t sizeOfString = conv.from_bytes(str).size();

thì đúng kết quả là 8

Nhưng khốn nỗi chỉ trên win32, khi mình build android thì báo ko có thư viện. Ae có giải pháp gì ko, giúp mình với. Thanks ae

Có vẻ biến thể w và locale của các class, method trong stl không tồn tại trên Android. Kiểu này chắc bạn phải kiếm thư viện ngoài chỉ để xử lý chuỗi UTF8 thôi.
http://site.icu-project.org/
https://www.qt.io/ (QString)
https://github.com/nemtrif/utfcpp

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?