echo iconv("Windows-1252", "utf-8", $e->getMessage());
Normal que ça fonctionne car Linux travaille en UTF-8.Citation
benichal
J'ai testé d'upload ma page de test sur un serveur linux de prod, et par miracle les messages d'erreurs s'affichent correctement.
Ce n'est pas un problème, c'est juste que ce n'est pas le même charset.Citation
benichal
J'ai également testé sur le poste d'un collègue, sous windows, avec wamp, et le problème persiste.
Citation
Otomatic
Ce n'est pas pour rien que la grande majorité des sites Web sont utf-8,
« Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche »
Que faites-vous de mon choix d'appliquer le jeu de caractères le mieux adapté à ma façon de travailler ?Citation
Otomatic
Ce n'est pas parce qu'on ne travaille que sous Windows qu'il faut systématiquement n'utiliser QUE CP1252 (Peu différent de ISO-8859-1)
[client] default-character-set = latin1 [wampmysqld] character-set-server = latin1 collation-server = latin1_general_ci character-set-filesystem = latin1 init-connect = 'SET NAMES latin1 COLLATE latin1_general_ci'
DEFAULT CHARACTER SET `latin1` DEFAULT COLLATE `latin1_general_ci`;--> au niveau de la table :
DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`--> au niveau de la colonne :
CHARACTER SET latin1 COLLATE latin1_general_ci--> au niveau de la connection à la base de données dans les scripts php :
<?php /*-----------------------------------------------------*/ /* Informations pour la connexion à la base de données */ /*-----------------------------------------------------*/ $nom_du_serveur = "mysql:host=localhost;dbname=test"; $nom_utilisateur = "test"; $mot_de_passe = "test"; $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES latin1", PDO::ATTR_CASE => PDO::CASE_LOWER, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_PERSISTENT => false ); /*----------------------*/ /* Connexion au Serveur */ /*----------------------*/ try { $link = new PDO($nom_du_serveur, $nom_utilisateur, $mot_de_passe, $options); } catch (Exception $e) { echo "Connection à MySql impossible : ", iconv("Windows-1252", "utf-8", $e->getMessage()); die(); } ?>--> dans le paramétrage du SGBDR MySql :
SHOW VARIABLES LIKE 'char%'; character_set_client utf8 character_set_connection utf8 character_set_database latin1 character_set_filesystem BINARY character_set_results utf8 character_set_server latin1 character_set_system utf8--> dans les conversions de chaines de caractères en php : fonction utf8_encode et utf8_decode
Comme je l'ai dit, c'est très mal compris, et je ne parle même pas de la documentation qui n'explique pas grand chose, comme si le sujet était d'une évidence à tout épreuve.Citation
benichal
Il est vrai que malgré les documentations recueillies dans le cadre de la recherche de ce problème, je n'avais jamais vraiment eu connaissance de tout ce qui tourne autour de l'encodage.
C'est à votre honneur de réfléchir, mais faire de la modélisation, c'est un métier à part.Citation
benichal
En revanche, contrairement à ce que tu dis, j'ai essayé de réfléchir à la modélisation des mes bases de données.
Il y a beaucoup d’âneries sur internet, dès que cela touche une expertise comme les bases de données.Citation
benichal
J'ai choisi UTF-8, car mes tables n'arriveront, premièrement, jamais à plusieurs millions de lignes, et deuxièmement car je recopie bêtement ce que les sites où j'ai appris à dev préconisent..
Encore que le Russe ne soit pas problématique.Citation
benichal
Et puis, si jamais j'avais à traduire mon appli en plusieurs langues, dont le russe ? ne serait-ce pas un bon choix ?