Problems with KDE_stat on systems where the default locale is not utf-8

Thiago Macieira thiago at kde.org
Wed Nov 19 21:29:56 GMT 2008


Christian Ehrlicher wrote:
>Hi,
>
>When QFile::encodeName() can't convert an unicode character into the
>system locale (== all locales except utf-8), the non-convertable
>character is replaced by a question mark. Now that the filename is
>broken, KDE_stat() can't do anything usefull and fails.
>For me looks like KDE_stat() and others are broken by design (when
>system locale is not utf-8) and we need a unicode version of KDE_stat().
>
>Any ideas how to fix this issue? Maybe a new class KLocalFile which
>wraps all KDE_foo functions?

We don't fix that issue. We only support KDE 4 in systems where the locale 
is UTF-8. We've announced and told the public about this for 3 years now.

I converted my system to UTF-8 over 5 years ago. All distributions ship 
UTF-8 locales by default. I doubt any of the systems that, in the past, 
didn't use UTF-8 are able to compile KDE 4 today (gcc 3.4 minimum, 4.0 
recommended). And MacOS X's only locale is UTF-8.

The only solution I have found so far for it is to add a QUrl-based API to 
QFile/QFileInfo/QDir and the file engines. QUrl can hold any arbitrary 
binary data as part of the pathname, and in 4.5 even raw slash characters 
that are not directory separators.

However, that breaks on Windows, where you can't have binary random data 
on the pathnames. First, the Win32 API is already in Unicode. Second, 
there are strict (and arbitrary) limitations on what characters are 
allowed in a path component.

-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20081119/6777cc59/attachment.sig>


More information about the kde-core-devel mailing list