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.macie...@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@qt-project.org > http://lists.qt-project.org/mailman/listinfo/development >
_______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development