[Development] FW: Backwards compatibiltiy break in Qt 5.5

NIkolai Marchenko enmarantispam at gmail.com
Mon Jul 27 19:47:51 CEST 2015


Ok, let's try another line of inquiry I just thought of :
Since when debuggin with qDebug requires external unicode converter, not
provided with Qt?  Surely you realize that without an access to one, the
output will not be helpful to ANYONE ?
And while we're at it: let's say we are debugging application through
multiple ssh tunnels on a console, that doesn't allow copy-pasting...

On Mon, Jul 27, 2015 at 7:13 PM, Thiago Macieira <thiago.macieira at intel.com>
wrote:

> On Monday 27 July 2015 08:44:30 Knoll Lars wrote:
> > I can understand the issues that non latin speakers are facing with this
> > well. I’ve often used qDebug() to debug non latin use cases, and in 90%
> of
> > the cases I just want to know what the string reads. The unicode content
> > of it is interesting to me in only 10% of the cases. For most users not
> > debugging Qt’s internals I would assume that ratio to be more like 99 to
> 1.
>
> As I said in my email, the problem is that you will not turn this on for
> those
> 10% of the cases until you've already lost data, either visibly or really.
> I'm
> counting ambiguity and homographs as apparent data loss because it will
> send
> you down the wrong debugging path.
>
> > Thiago, which backends can’t handle utf8 or utf16 output these days?
>
> Android log, slog2, syslog and the regular stderr output if the system
> locale
> isn't UTF-8. In particular, on Windows the system locale is never UTF-8
> unless
> you're using Vietnamese Windows. On the other hand, the OS X system locale
> is
> always UTF-8 unless you've messed up, including with setCodecForLocale.
>
> Or, if I list those that always do: WIndows OutputDebugString and journald.
>
> None of those are binary-safe, which means they will not work with a
> QString
> containing a NUL character.
>
> > One idea could be a slightly modified approach that is more compatible:
> >
> > * We always encode QStrings as utf8 (maybe utf16 for the windows console)
> > when sending them to qDebug()
>
> That would change behaviour for people with non-UTF-8 systems, as they'd
> now
> see mojibake.
>
> > * We quote every character that is not printable (ie. !QChar::isPrint())
>
> This is what I've done, except that I used ctype.h's isprint(), under the
> "C"
> locale. I considered using QChar::isPrint here, but it would be very
> expensive
> and it would not solve the homograph and ambiguity problem anyway. Better
> to
> just do nothing than use QChar::isPrint.
>
> > * We add a flag that would give fully quoted strings so you can get a
> > quoted version if required (e.g. qDebug() << quoteStrings)
>
> I'm ok with a flag, as long as it's the default.
>
> --
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel Open Source Technology Center
>
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20150727/e8c3c8d1/attachment.html>


More information about the Development mailing list