Je pense qu'on préfère rester compatible avec les systèmes qui ne parlent pas correctement Unicode (autorisent les chaînes mal encodées) parce que c'est plus facile (zéro effort) que de corriger le problème à la source (d'où vient cette chaîne pourrie ?). Pourquoi ne pas renommer correctement le fichier une fois pour toute plutôt que de devoir corriger tous les programmes pour gérer ce cas pourri ?
Sauf que dans ce cas c'est POSIX qu'il faut changer (rendre unicode obligatoire pour les noms de fichiers, et changer les systèmes de fichiers en conséquence), pour unix les noms de fichiers sont des octets.
Sinon à mon avis il faudrait unifier les deux API (win et linux) et par exemple toujours convertir les chaînes unicode en UTF-8 sous windows quand on utilise l'API bytes, ainsi le code pour open() sous windows décoderait à partir de l'utf-8 quand on lui passe des bytes.
[^] # Re: python 3.0
Posté par ribwund . En réponse à la dépêche Nouvelle version majeure de Python (2.6). Évalué à 3.
Sauf que dans ce cas c'est POSIX qu'il faut changer (rendre unicode obligatoire pour les noms de fichiers, et changer les systèmes de fichiers en conséquence), pour unix les noms de fichiers sont des octets.
Sinon à mon avis il faudrait unifier les deux API (win et linux) et par exemple toujours convertir les chaînes unicode en UTF-8 sous windows quand on utilise l'API bytes, ainsi le code pour open() sous windows décoderait à partir de l'utf-8 quand on lui passe des bytes.