On quarta-feira, 26 de dezembro de 2012 16.23.30, Nikos Chantziaras wrote: > On 26/12/12 16:16, Thiago Macieira wrote: > > On quarta-feira, 26 de dezembro de 2012 15.54.25, Nikos Chantziaras wrote: > >> I need the actual name of the character set from which > >> > >> QFile::decodeName() is converting. [...] Unfortunately, this: > >> QTextCodec::codecForLocale()->name() > >> > >> returns "System" on platforms that come with a Qt that uses ICU (pretty > >> much all Linux distributions.) [...] > >> > >> Is there anything I can do? > > > > There is no Qt API to return that value. You can use the Windows API, > > POSIX > > API or ICU API to find out by yourself. > > Too bad. > > Though the API *is* there. It's QTextCodec::name() and > QTextCodec::aliases(). IMO it's a mistake by Qt to return "System" > there, since "System" has exactly zero use. Or at least > QTextCodec::aliases() should contain the actual name in one of its elements.
It's not a mistake. It returns "System" meaning "I've just asked Windows or ICU (or in Qt 4, iconv) to do it for me and I don't care what the encoding was". Due to construction, in the case of ICU, the QIcuCodec class actually knows the name of the system codec, since it needed to ask for it via ucnv_getStandardName. But in the case of the Windows and iconv codecs, we simply don't know. We ask the system API to do it (MultiByteToWideChar, WideCharToMultiByte; iconv's iconv_open with a NULL source or destination). Why do you need the codec name anyway? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest