[Development] RFC: Defaulting to or enforcing UTF-8 locales on Unix systems
Eike.Ziller at qt.io
Fri Nov 15 09:52:55 CET 2019
> On 15. Nov 2019, at 08:20, Thiago Macieira <thiago.macieira at intel.com> wrote:
> On Thursday, 14 November 2019 13:27:23 PST André Pönitz wrote:
>> *Within* a Qt application consisting of Qt library, other libraries,
>> and actual user code it's mildly presumptous for one library to impose
>> random unnecessay restrictions on user code and other libraries.
> That boat sailed 20 years ago when we started calling setlocale() from
> QCoreapplication. We set the locale, period.
> The questions are:
> 1) do we want to prevent another library from accidentally unsetting it?
> 2) do we want child processes to use the same?
> Note the answers for both questions must be the same, for the solution is the
> same. So either both yeses or both nos.
>> Making assumptions on the controlability of content of a input stream is
>> questionable. The proposed method of changing the environment for child
>> processes is no guarantee on what the child actually produces, and the
>> Qt application still has to be prepared to handle non-Utf-8 or otherwise
>> "broken" input.
> Qt 6 will not have support for non-UTF-8 codecs, outside of Windows. You can
> either deal with binary data or with UTF-8 text, there's no middle ground.
- You state that as if that were a fact imposed on us from some external entity, and as if that patch were already in.
- I thought QTextCodec will still be available, even if from a separate module. If that plan has changed, provide a patch for Qt Creator as well.
>> This discussion so far claimed the existance of a range of problems
>> without giving an actual example. Then it goes on to propose a shotgut
>> approach (LC_ALL, "ALL") to handle ... what? "Obscure locale settings"
>> like categories that are a bit more fine grained than LC_ALL? Bear with
>> me when I do not have the impression that Qt will be the right context
>> to accept such "obligations".
> The same argument can be made for your statements: you're arguing that here
> are broken applications that won't handle C.UTF-8 correctly, without giving as
> single example.
> I think the whole problem is that we're trying to talk about broken
> applications and the way their brokenness manifests itself. I don't think such
> applications exist anymore in occurrence sufficient for us to deal with.
> Anyway, since you oppose setting the environment, let's just make a check for
> if (locale is not UTF-8)
> qFatal("Qt only supports UTF-8 locales. "
> "Please configure your system properly");
> Thiago Macieira - thiago.macieira (AT) intel.com
> Software Architect - Intel System Software Products
> Development mailing list
> Development at qt-project.org
Principal Software Engineer
The Qt Company GmbH
eike.ziller at qt.io
Geschäftsführer: Mika Pälsi,
Juha Varelius, Mika Harjuaho
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B
More information about the Development