Il n'y a pas de problème, Qt fonctionne très bien avec des noms de fichier mal encodés. Le bug est dans ton code, pas dans Qt (ni dans Linux :-)). Exemple en Python : from PyQt4.QtCore import QDir, QFile, QIODevice
cwd = QDir('.')
entries = cwd.entryInfoList()
for entry in entries:
.. name = entry.fileName()
.. if unicode(name).startswith(u"."):
.... continue
.. file = QFile(name)
.. file.open(QIODevice.ReadOnly)
.. data = file.read(10)
.. file.close()
.. bytes_name = str(QFile.encodeName(name))
.. print "%r: content=%r" % (bytes_name, data)
Pour créer un fichier avec un nom invalide sous Linux : echo "pouet" > $(echo -ne "b\xff--").
[^] # Re: Réponse de Qt pour les mauvais encodage dans les nom de fichiers
Posté par Victor STINNER (site web personnel) . En réponse à la dépêche Sortie d'UltraCopier 0.2 et Catchcopy. Évalué à 4.
from PyQt4.QtCore import QDir, QFile, QIODevicecwd = QDir('.')
entries = cwd.entryInfoList()
for entry in entries:
.. name = entry.fileName()
.. if unicode(name).startswith(u"."):
.... continue
.. file = QFile(name)
.. file.open(QIODevice.ReadOnly)
.. data = file.read(10)
.. file.close()
.. bytes_name = str(QFile.encodeName(name))
.. print "%r: content=%r" % (bytes_name, data)
Pour créer un fichier avec un nom invalide sous Linux : echo "pouet" > $(echo -ne "b\xff--").