OVH Community, votre nouvel espace communautaire.

Base Mysql passée toute seule en UTF8 ?


Jean-Michel 25
18/06/2016, 10h08
Ok, merci.
Moi j'ai fini de virer toutes les fonctions de traduction.
Maintenant je suis en Utf8 de bout en bout, ça me va bien.

Gaston_Phone
17/06/2016, 22h40
Personnellement, j'ai eu le problème d'accent le jour même où je suis passé de PHP 5.4 à 5.6, que j'ai contourné en insérant au début de chaque script :
Code PHP:
   // A partir de PHP 5.6, sinon les caractères accentués seront mal affichés
   
ini_set('default_charset''iso8859-1');
?>

Jean-Michel 25
17/06/2016, 14h26
Avant, a priori pareil vu que je n'ai rien changé ! Je n'ai pas touché à la config depuis des semaines.
Le problème d'accents m'est tombé dessus hier sans aucune intervention de ma part.

Domaine : doctsf.com
Offre : perf2014x1
Filer : 763
Serveur SQL ? : doctsfgl.mysql.db
Nic-handle : BJ1280-OVH

Je n'ai pas ouvert de ticket vu que j'ai réglé la question en virant toutes les fonctions utf8_

Gaston_Phone
17/06/2016, 12h24
Citation Envoyé par Jean-Michel 25
... et mon site sous PHP Version 5.6.21
Et avant ?

Jean-Michel 25
17/06/2016, 09h49
Je viens de regarder, je suis en stable 5.6

Bon, je ne sais pas ce qui a été changé à l'insu de mon plein gré hier, mais voici la situation actuelle :

- ma base de données est en UTF8.
Pour le vérifer j'ai exécuté dans phpmyadmin SHOW VARIABLES LIKE 'char%', qui donne :
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

- ma connexion mysqli est sans artifice :
@$db_mysqli_gl = new mysqli($db_server, $db_username, $db_password, $db_base)

- mon inc.php, commun à toutes mes pages, commence par :
ini_set( 'default_charset', 'UTF-8' );
setlocale (LC_TIME, 'fr_FR.utf8','fra');

- pour créer mes scripts, mon éditeur Dreamwever, l'encodage des pages est utf8

- mes entêtes HTML commencent par


Donc ce matin, tout est cohérent.
Je ne sais pas quelle était la config de l'hébergement il y a deux jours, qui nécessitait l'utilisation des fonctions de traduction UTF8_encode ou UTF8_decode.
Comme ce matin elles gênent, je les vire en espérant qu'il n'y aura pas d'autre changement de configs dans l'autre sens...

Daniel60
17/06/2016, 09h21
Citation Envoyé par Jean-Michel 25
Je ne sais pas ce que tu entends pas "passé en stable", en fait je n'ai touché à rien et le changement d'encodage m'est tombé dessus sans crier gare...
https://forum.ovh.com/showthread.php...pal8-TLS1-2%29
OK je vais appliquer la méthode ini_set('default_charset', 'iso-8859-1');
ce sera plus rapide que de virer toutes les fonctions utf8...
Je préfère mysqli_set_charset($db, "latin1") car je n'ai pas d'index.php et je ne tiens pas à modifier plusieurs pages.

Jean-Michel 25
17/06/2016, 09h10
Je ne sais pas ce que tu entends pas "passé en stable", en fait je n'ai touché à rien et le changement d'encodage m'est tombé dessus sans crier gare...

OK je vais appliquer la méthode ini_set('default_charset', 'iso-8859-1');
ce sera plus rapide que de virer toutes les fonctions utf8...

Daniel60
17/06/2016, 08h38
Es-tu passé en stable ? Car j'ai rencontré aussi ce phénomène après le changement d'environnement.
Aussi j'ai appliqué ce que préconise chmod777 à l'ouverture des bases.

Jean-Michel 25
17/06/2016, 08h22
C'est une base mutu, mais je pense que tu est dans le vrai et qu'il y a eu un déplacement. Bizarre tout de même...

buddy
16/06/2016, 23h05
Si tu as un SQL privé il a du être mis à jour et déplacé sur une autre infra.

Jean-Michel 25
16/06/2016, 22h27
Merci mais en fait j'ai observé les problèmes d'accents sans avoir rien modifié sur mon site depuis des semaines !

Sans ini_set, et en supprimant toutes mes fonction UTF8_..., retour à la normale.
Mais que c'est-il passé aujourd'hui sur l'hébergement ou la BDD ?...

chmod777
16/06/2016, 22h21
ini_set('default_charset', 'iso-8859-1');
// le site
?>

très certainement.

Et ajouter le charset à la base ne fera pas de mal non plus :
mysql_set_charset("latin1");
mysqli_set_charset($db, "latin1");
new PDO("BLABLA;charset=latin1");


J'espère que ça te sera utile malgré le retard car je sais d'avance que le message va partir en pré-modération.
(si cette solution fonctionne, l'utilisation de utf8_decode n'est bien sûr plus utile. changement depuis php 5.6)

chmod777
16/06/2016, 22h13
ini_set('default_charset', 'iso-8859-1');
// le site
?>

très certainement.

Et ajouter le charset à la base ne fera pas de mal non plus :
mysql_set_charset("latin1");
mysqli_set_charset($db, "latin1");
new PDO("BLABLA;charset=latin1");


J'espère que ça te sera utile malgré le retard car je sais d'avance que le message va partir en pré-modération.

Jean-Michel 25
16/06/2016, 21h41
Bonsoir

Depuis ce jour, mon site affiche des cochonneries à la place des accents.
Je dois enlever de mes scripts php toutes les instructions utf8_decode

Mais je déteste ne pas comprendre. Y a-t-il eu aujourd'hui une migration de la base de données ou un changement de config de php ?
Ma base est sous mysql51-56.pro, et mon site sous PHP Version 5.6.21

??????