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 [email protected] http://lists.qt-project.org/mailman/listinfo/development
