[Interest] Filling QString from raw UTF16 data
Konstantin Tokarev
annulen at yandex.ru
Sun Aug 12 11:38:45 CEST 2012
12.08.2012, 00:25, "Thiago Macieira" <thiago at kde.org>:
> On sábado, 11 de agosto de 2012 20.51.30, Konstantin Tokarev wrote:
>
>> Hi all,
>>
>> I'd like to use SCSU encoding from ICU library in my Qt application. Here is
>> a code of my decoding function:
>>
>> QString result;
>> result.resize(maxSize); // maxSize is guaranteed to be >= size
>> const int size = ucnv_toUChars(m_converter, const_cast<ushort
>> *>(result.utf16()), maxSize, a, inSize, &status);
>
> utf16() is wrong.
>
> Instead, use:
> reinterpret_cast<ushort *>(result.data())
>
>> result.resize(size);
>> return result;
>>
>> (ucnv_toUChars fills array in second argument with UTF16 string and returns
>> its size)
>>
>> Is it safe to use return value of QString::utf16() this way in this context
>> (QString is always created on stack locally)?
>
> No.
Thank you very much!
--
Regards,
Konstantin
More information about the Interest
mailing list