2013-08-15 5 views
5

मुझे this one के विपरीत समस्या को हल करने की आवश्यकता है। मेरे पास गैर-असीसी प्रतीकों के साथ क्यूस्ट्रिंग है।
उदाहरण के लिए:
Schöne Grüßeबाइट्स में क्यूस्ट्रिंग लंबाई प्राप्त करें (वर्ण नहीं)

कैसे UTF8 मामले के लिए बाइट में स्ट्रिंग की लंबाई प्राप्त करने के लिए? यह 15.
मैंने ByteArray, Latin1, ASCII पर रूपांतरण करने की कोशिश की है, लेकिन लंबाई हमेशा समान होती है।

उत्तर

16

आपको :: toUtf8() का उपयोग करने और इसे QByteArray में जोड़ने की आवश्यकता है। फिर आप .size() का उपयोग कर लंबाई प्राप्त कर सकते हैं।

QString s = "Schöne Grüße"; 
QByteArray bytes = s.toUtf8(); 
int length = bytes.size(); //Number of bytes 

http://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libqt4/qbytearray.html#size

+0

toUtf8 में पैरामीटर नहीं है !! – Ashif

+0

सही, यह नहीं है। – lpapp

-3

http://clc-wiki.net/wiki/C_standard_library:string.h:strlen

सी स्टैंडर्ड एपीआई strlen() देता है एक अशक्त में बाइट की संख्या स्ट्रिंग समाप्त, अशक्त टर्मिनेटर शामिल नहीं है।

संबंधित मुद्दे