visible dans le fichier conf/conf.php
Cela viendrait du fait que c’est le jeu de caractères par défaut des bases MySQL
cela m’a occasionné parfois des erreurs en important des données en UTF8
→ est-ce que vous pensez qu’on peut garder ces encodages au lieu de utf8 ?
→ ou faut-il repasser le fichier conf.php en utf8 ?
merci pour ce fil, j’ai appliqué le script de réparation /install/repair.php?force_utf8_on_tables=confirmed
Il s’est bien passé, cependant le fichier conf.php n’a pas changé, c’est toujours en latin1_swedish_ci , est-ce que c’est gênant ?
cordialement
Pour MariaDB cela varie en fonction de la distribution linux. Normalement c’est latin1latin1_swedish_ci par défaut, mais sur Debian par exemple ça va être utf8mb4 et utf8mb4_general_ci
C’est parfois presque aussi joyeux à gérer que les timezones
@MatthieuM le mieux c’est quand même de le changer pour que se soit cohérent.
Le problème actuellement c’est que pour créer de nouvelles tables (première installation, ou activation de module) Dolibarr n’utilise pas les informations du fichier conf.php, mais par contre pour enregistrer les données dedans oui.
Cela reste des opérations que les hébergeurs Dolibarr font mécaniquement/automatisés sur leur scripts d’installation (normalement).
OVH décide pour vous une mauvaise valeur par défaut.
En fait il faut demander à votre moteur de base de donnée quelle est la collation et le character_set d’une connexion par défaut et mettre ça dans le fichier conf.php de Dolibarr ou le modifier (par exemple avec phpmyadmin ou en SQL) pour que cela soit cohérent de partout.
Pour connaître ces informations par defaut en SQL
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
Suite à cette manipulation, mes sauvegardes antérieures au changement de charset ne sont plus importables par l’outil phpmyadmin ( erreur d’import, même en désactivant la vérification des clés étrangères )
J’ai donc édité le fichier .sql de la sauvegarde antérieure au changement de charset en remplaçant toutes les occurrences de CHARSET=latin1; par CHARSET=utf8; avec un éditeur de texte
Puis dans phpmyadmin j’ai dû supprimer toutes les tables à la main car certaines tables avaient été importées en latin1 dans la tentative échouée