01/10/2018, 11:29

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

明玉 viết 13:35 ngày 01/10/2018

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

Bài liên quan
0