2010-06-03 8 views
0

J'ai cette fonction dans un fichier php:Cet encodage sera-t-il un problème dans le futur?

mysql_query("SET NAMES 'utf8'") or die(mysql_error()); 
mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error()); 

    some stuff happening here, 

rename($src, $dest.$cat); 

Cest sur le serveur, et est la configuration que j'ai aujourd'hui qui fonctionne (atleast sur mes navigateurs).

Maintenant, sur ma machine locale (mon ordinateur portable avec WampServer) cette habitude de travailler à moins que je le faire:

mysql_query("SET NAMES 'utf8'") or die(mysql_error()); 
mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error()); 

     some stuff happening here 

$cat=utf8_decode($category); 
rename($src, $dest.$cat); 

Et j'ai aussi meta=utf-8 dans ce fichier php.

$ cat tire son contenu d'un mysql_query ...

Je voudrais savoir la différence (pourquoi il ne fonctionne pas de la même manière sur le serveur et sur ma machine locale)?

Et je voudrais savoir si cela entraînera des problèmes sur les différents navigateurs des utilisateurs, en le faisant la façon dont il est

+0

Est-ce vraiment une question de sécurité? – rook

Répondre

0

Les opérations de système de fichiers sous Windows requièrent que vous spécifiez les chemins/noms de fichiers dans la page de codes que Windows utilise.

SO Je suppose que votre page de codes est probablement quelque chose comme cp1252, par conséquent vous devez utiliser utf8_decode. Notez que, malheureusement, vous ne pouvez pas définir la page de codes de Windows à UTF-8 (65001).

Sur Linux, d'autre part, vous pouvez utiliser n'importe quel encodage. Cependant, vous devez être cohérent - si vous enregistrez un fichier en utilisant un nom de fichier UTF-8, vous devez le lire en utilisant la même séquence d'octets.

0

les méta balises HTML et requêtes SQL n'affectent pas système de fichiers opérations.

Il s'agit probablement d'un problème de système de fichiers. Windows peut recoder vos noms de fichiers.

Questions connexes