unicode ett caracteres chinois

kobebryant824
Invité n'ayant pas de compte PHPfrance

14 sept. 2011, 15:29

Bonjour,
J'ai un souci avec file_exist, Contexte:
-sauvegarder un fichier text avec un nom chinois
ex: 新建 文本文档.txt
-appliquer file_exists(C:\新建 文本文档.txt)

Resultats: file_exist retourn tjs FALSE, mon fichier n'est pas reconnu

Voilà, merci pr les réponses...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

26 sept. 2011, 00:41

Malheureusement, je crains que ce ne soit pas possible avant PHP 6 :
https://bugs.php.net/bug.php?id=46990
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 121 Messages

26 sept. 2011, 14:20

Est-ce que tu as vraiment besoin de conserver les caractères chinois dans le système de fichier ? Si ce n'est pas le cas tu peux peut-être encoder ta chaine avec base64_encode() et utiliser le résultat pour nommer ton fichier, ça donne "JiMyNjAzMjsmIzI0MzE0OyAmIzI1OTkxOyYjMjY0MTI7JiMyNTk5MTsmIzI2NzIzOw==" pour ta chaine... c'est peut-être un long, mais ça peut marcher:
$filename = '新建 文本文档';
$filename_encoded =  base64_encode($filename);
$extension = '.txt';

if (file_exists($filename_encoded . $extension))
{
    ...
}
Tu peux aussi utiliser la translittération si elle est disponible dans ton environnement, ce sera même mieux.

Eléphant du PHP | 275 Messages

26 sept. 2011, 15:14

Malheureusement, je crains que ce ne soit pas possible avant PHP 6 :
https://bugs.php.net/bug.php?id=46990
php6, qui est abandonné ? :D

ViPHP
ViPHP | 5462 Messages

15 nov. 2011, 15:18

essaye de changer la locale avec setlocale

kobe
Invité n'ayant pas de compte PHPfrance

15 nov. 2011, 15:24

Bonjour,
Merci Gofromiel mais Base64_encode ne resoud pas le probleme.
ki aurait une autre piste????
Kobe

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

15 nov. 2011, 15:54

Bonjour,
Merci Gofromiel mais Base64_encode ne resoud pas le probleme.
ki aurait une autre piste????
Kobe
Essaye un foreach (glob("*.txt") as $nom_fichier) pour voir comment PHP le reconnait, peut être que ça pourra t'aider.

On te revois dans 2 mois? :D
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 2278 Messages

18 nov. 2011, 21:09

D'où provient ce fichier au nom écrit encaractères chinois?
Il y a bien un moment où il est écrit dans la partie de ton systeme que peuventt atteindre tes scripts PHP.
Au moment où il apparaît pour la première fois, n'y a-t-il pas moyen de lui donner un nom arbitraire (chinois_1.txt, chinois_2.txt...;) avant de le sauvegarder, en particulier s'il est uploadé par move_uploaded_file?
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD