KConfigGroup read/write bug for QByteArray

Matt Rogers mattr at kde.org
Sun Sep 16 14:41:28 BST 2007


On Sunday 16 September 2007 07:41, David Jarvie wrote:
> Using KConfigGroup::writeEntry() to write a QByteArray and then
> KConfigGroup::readEntry() to read it back in again can result in a value
> which is different from the original value, because the value written to
> the config file is converted to UTF8 when it is read back, so that all byte
> values >= 0x7F are changed to multi-byte values.
>
> If this is the desired behaviour (which I doubt), it's difficult to convert
> back from UTF8 since calling QString::fromUtf8 truncates the value as soon
> as it encounters a null byte. In data arrays, null bytes are common.
>
> The conversion occurs at the KConfigINIBackEnd level - reading from the
> config file using QFile seems to automatically convert the input to UTF8.
> Since at this level the config entry type is unknown, the solution looks
> like KConfigGroup::writeEntry() should write all QByteArray byte values >=
> 0x7F in hex representation. That way, the QFile read won't change them, and
> the correct value will be accessible to KConfigGroup for conversion.
>
> I'll produce a patch if my proposed solution is acceptable. Comments
> please.

Can you provide a patch? Then we can discuss your proposal based on the 
technical merits of it rather than just sitting in our chairs wondering to 
ourselves how it would actually work and whether or not we'd like it.
-- 
Matt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070916/e4d0323a/attachment.sig>


More information about the kde-core-devel mailing list