[Interest] Unescape hex escaped values in a QString

Thiago Macieira thiago.macieira at intel.com
Sun Oct 22 18:38:06 CEST 2017


On Sunday, 22 October 2017 03:48:12 PDT Christian Ehrlicher wrote:
> Hi,
> 
> Is there a Qt-way to decode hex escaped values in a QString? In bug
> 61420 the udev filename in /dev/disk/by-label/ is encoded with
> ID_FS_LABEL_ENC which means all non-latin1 characters are hex-escaped.
> But since QFileInfo::fileName() already returns a QString I can't use
> QString::fromUtf8() to do an 'automatic' conversion...

Hmm... I see what you want.

First of all, use QStorageInfo.

Second, QStorageInfo has the same problem that you're asking about. I tries to 
guess filesystem labels by looking up the symlink in /dev/disks/by-label that 
points to the device in question, but it has no decoding function:

        if (fileInfo.isSymLink() && fileInfo.symLinkTarget() == devicePath)
            return fileInfo.fileName();

There's no function to decode this in QString or QByteArray for that matter. 
This has nothing to do with fromUtf8().

The decoding has to be done manually.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Interest mailing list