c’est pas tout a fait du spip; Mais c’est dans un site spip.
j’ai une base : fetedujour les fête sont écrit dans la base comme ceci Fête de …
ors je me retrouve avec des ? pour les é;è;ê comment y remedier
pour info j’ai essayé de modifier directemment via le sql l’interclassement en utf8 ; latin1bin; latin1_general_ci
mais quand je recalcul la page ou un coup de F5 , rien n’y fait toujours c’est ?
Pour ne pas être emm… avec ces problèmes d’encodage. Il te faut tout avoir en UTF-8 :
la base de donnée
le meta charset ( dans inc-head.html )
et spip dans la gestion des langues ( configuration )
et les fichiers HTML de squelettes ( avec ton éditeur de texte favori )
il te faudra resaisir les textes qui ressortent mal ( manière de les réenregistrer dans le bon encodage dans la base de données ) et voila
Le problème c’est de devoir tout resaisir … mais tu dois pouvoir te faire un petit script php en passant par une table temporaire ou en faisant un export de phpmyadmin et en changeant l’encadage du fichier sql
Pour ne pas être emm… avec ces problèmes d’encodage. Il te faut tout avoir en UTF-8 :
la base de donnée
==> bon ça je fait
le meta charset ( dans inc-head.html )
je trouve ça ou ?; la seul ligne qui me semble correspondre est :
(#REM) Preciser le charset ]
et spip dans la gestion des langues ( configuration )
j’ai point trouvé ou c’est ? /ecrire/?exec=configuration
et les fichiers HTML de squelettes ( avec ton éditeur de texte favori )
euh la faut preciser car si c’est dans le head ; c’est pas automatiquement dans le squelettes ?
Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
par contre si je nomme dans le home ==> Interclassement pour la connexion MySQL: utf8_unicode_ci
je retrouve pas ça dans dans la base pour chaque table Interclassement mais du latin1_swedish_ci et du latin1_general_ci
c’est normal ??
Il est en UTF8 ton SPIP ?
non en latin1_swedish_ci
c’est pas tout a fait du spip; Mais c’est dans un site spip.
j’ai une base : fetedujour les fête sont écrit dans la base comme ceci Fête de …
ors je me retrouve avec des ? pour les é;è;ê comment y remedier
pour info j’ai essayé de modifier directemment via le sql l’interclassement en utf8 ; latin1bin; latin1_general_ci
mais quand je recalcul la page ou un coup de F5 , rien n’y fait toujours c’est ?
Pour ne pas être emm… avec ces problèmes d’encodage. Il te faut tout avoir en UTF-8 :
la base de donnée
le meta charset ( dans inc-head.html )
et spip dans la gestion des langues ( configuration )
et les fichiers HTML de squelettes ( avec ton éditeur de texte favori )
il te faudra resaisir les textes qui ressortent mal ( manière de les réenregistrer dans le bon encodage dans la base de données ) et voila
Le problème c’est de devoir tout resaisir … mais tu dois pouvoir te faire un petit script php en passant par une table temporaire ou en faisant un export de phpmyadmin et en changeant l’encadage du fichier sql
Pour ne pas être emm... avec ces problèmes d'encodage. Il te faut tout avoir en UTF-8 :
- la base de donnée
==> bon ça je fait
attention sous mysql 5 et > si tu as déjà ta base en latin-1 il te faut changer tous les champs un a un ou a coup de requetes sql ( mais je ne saurais te les donner )
phpmyadmin le fait trés bien
- le meta charset ( dans inc-head.html )
je trouve ça ou ?; la seul ligne qui me semble correspondre est :
(#REM) Preciser le charset ]
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
c'est exactement cette ligne dont je parlais
le #CHARSET , c'est une balise qui est géré justement par la page de config : ecrire/?exec=config_lang
- et spip dans la gestion des langues ( configuration )
j'ai point trouvé ou c'est ?
/ecrire/?exec=configuration <http://bachant.free.fr/ecrire/?exec=configuration>
- et les fichiers HTML de squelettes ( avec ton éditeur de texte favori )
euh la faut preciser car si c'est dans le head ; c'est pas automatiquement dans le squelettes ?
non si tu regardes la configuration de ton éditeur de textes ( je ne sais pas lequel tu utilises ) tu as l'encodage utilisé par ton éditeur ... même si ce n'est pas qui fera que to
Jeu de caractères pour MySQL: *UTF-8 Unicode (utf8)*
par contre si je nomme dans le home ==> Interclassement pour la connexion MySQL: utf8_unicode_ci
je retrouve pas ça dans dans la base pour chaque table Interclassement mais du /latin1_swedish_ci et du latin1_general_ci/
// c'est normal ??
oui c'est normal voir la réponse plus haut
---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 080630-1, 30/06/2008
Analyse le : 30/06/2008 22:57:11
avast! - copyright (c) 1988-2008 ALWIL Software.
Pour ne pas être emm... avec ces problèmes d'encodage. Il te faut tout avoir en UTF-8 :
- la base de donnée
==> bon ça je fait
attention sous mysql 5 et > si tu as déjà ta base en latin-1 il te faut changer tous les champs un a un ou a coup de requetes sql ( mais je ne saurais te les donner )
phpmyadmin le fait trés bien
Je vais faire table par table.........
- le meta charset ( dans inc-head.html )
je trouve ça ou ?; la seul ligne qui me semble correspondre est :
(#REM) Preciser le charset ]
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
c'est exactement cette ligne dont je parlais
le #CHARSET , c'est une balise qui est géré justement par la page de config : ecrire/?exec=config_lang
cela été régler déjà en
Votre site est actuellement installé dans le jeu de caractères :
utf-8
- et les fichiers HTML de squelettes ( avec ton éditeur de texte favori )
euh la faut preciser car si c'est dans le head ; c'est pas automatiquement dans le squelettes ?
non si tu regardes la configuration de ton éditeur de textes ( je ne sais pas lequel tu utilises ) tu as l'encodage utilisé par ton éditeur ... même si ce n'est pas qui fera que to
MON GRAND PERE disait souvent " Touche pas a ça petit con"
Pour une fois j'aurais du écouter mon grand pére..
Pour ne pas être emm... avec ces problèmes d'encodage. Il te faut tout avoir en UTF-8 :
- la base de donnée
==> bon ça je fait
attention sous mysql 5 et > si tu as déjà ta base en latin-1 il te faut changer tous les champs un a un ou a coup de requetes sql ( mais je ne saurais te les donner )
phpmyadmin le fait trés bien
Donc dans bachant.sql.free.fr et phpmyadmin 2.11.3 sur la page d'accueil
je voie la base bachant composer de 88 table en Interclassement pour la connexion MySQL: utf8_unicode_ci
si je clic sur bachant je me retrouve avec des tables en interclassement
latin1_general_ci pour les tables holydays et chaton
latin1_swedish_ci pour les tables "SPIP"
- le meta charset ( dans inc-head.html )
je trouve ça ou ?; la seul ligne qui me semble correspondre est :
(#REM) Preciser le charset ]
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
c'est exactement cette ligne dont je parlais
le #CHARSET , c'est une balise qui est géré justement par la page de config : ecrire/?exec=config_lang
cela été régler déjà en
Votre site est actuellement installé dans le jeu de caractères :
utf-8
- et les fichiers HTML de squelettes ( avec ton éditeur de texte favori )
euh la faut preciser car si c'est dans le head ; c'est pas automatiquement dans le squelettes ?
non si tu regardes la configuration de ton éditeur de textes ( je ne sais pas lequel tu utilises ) tu as l'encodage utilisé par ton éditeur ... même si ce n'est pas qui fera que to
Pour ne pas être emm... avec ces problèmes d'encodage. Il te faut tout avoir en UTF-8 :
ou a coup de requetes sql ( mais je ne saurais te les donner )
On peut faire la conversion d'une base d'une manière beaucoup plus propre, moins bricolée, et sans erreur avec un script php:
<?php
//** Modifiez vos parametres MySQL **//
$db_server = "ServeurMySQL";
$db_name = "NomDeLaBaseSQL";
$db_username = "IdentifiantSQL";
$db_password = "MotDePasseSQL";
$db_charset = "utf8"; //* mettre utf8 ou latin1 *//
//** C'est tout. Placez ce fichier par FTP quelque part sur votre serveur Web, dans un endroit discret. **//
//** Puis ouvrez-le avec votre navigateur web et suivez les instructions. **//
echo "<html><body>Ce script cree une sauvegarde de la base de donnees avec l'encodage du jeu de caracteres $db_charset . \n<br>\n<br>Le fichier de sauvegarde est au meme endroit que ce script. \n<br>\n<br>";
echo "Votre base est en cours de sauvegarde.......\n<br>";
if (system("mysqldump --host=$db_server --user=$db_username --password=$db_password -C -Q -e --default-character-set=$db_charset $db_name | gzip -c > $db_name-$db_charset.sql.gz"));
echo "\n<br>";
echo "C'est fini. Vous pouvez recuperer le fichier de sauvegarde. Il s'appelle: <a href=\"$db_name-$db_charset.sql.gz\">$db_name-$db_charset.sql.gz</a> (faites un clic-droit, et enregistrez sous... , ou enregistrez la cible du lien sous...) \n<br>\n<br>N'oubliez pas d'effacer ce fichier de votre serveur par FTP car il contient des mots de passe.\n<br>\n<br></body></html>";
?>
Ce script force la conversion avec l'encodage choisi et fait une sauvegarde (dump) de la base. Donc, si votre base est en latin1, elle sera convertie en utf8. Puis, importez la base avec phpMyadmin ou l'excellent bigdump (BigDump: Staggered MySQL Dump Importer) en choisissant le bon encodage de caractère.
la je reinstall une 1.9.3 fraiche ; j'ai supprimer ma base et je vais regarder ce qui se passe
echo « Ce script cree une sauvegarde de la base de donnees avec l’encodage du jeu de caracteres $db_charset . \n \n Le fichier de sauvegarde est au meme endroit que ce script. \n \n »;
echo « Votre base est en cours de sauvegarde…\n »;
if (system(« mysqldump --host=$db_server --user=$db_username --password=$db_password -C -Q -e --default-character-set=$db_charset $db_name | gzip -c > $db_name-$db_charset.sql.gz »));
echo « \n »;
Il y a très peu de cas où la fonction PHP ‹ system() › est active. C’est souvent désactivé pour des raisons de sécurité.
Je n’ai pas suivi la conversation depuis le début, mais lorsque je veux encoder une base j’édite simplement un dump et l’enregistre sous le format voulu (j’utilise TextMate sous Mac, mais sous Windows NotePad++ le fait très bien).
– il est fort probable qu’il faille aussi modifier les déclarations des encodages des tables dans le dump —
Puis je le réimporte (en utf8 pour phpMyAdmin)
.Gilles
echo « C’est fini. Vous pouvez recuperer le fichier de sauvegarde. Il s’appelle: <a href="$db_name-$db_charset.sql.gz">$db_name-$db_charset.sql.gz (faites un clic-droit, et enregistrez sous… , ou enregistrez la cible du lien sous…) \n \n N’oubliez pas d’effacer ce fichier de votre serveur par FTP car il contient des mots de passe.\n \n »;
?>
Ce script force la conversion avec l’encodage choisi et fait une sauvegarde (dump) de la base. Donc, si votre base est en latin1, elle sera convertie en utf8. Puis, importez la base avec phpMyadmin ou l’excellent bigdump (http://www.ozerov.de/bigdump.php) en choisissant le bon encodage de caractère.
la je reinstall une 1.9.3 fraiche ; j’ai supprimer ma base et je vais regarder ce qui se passe
Il y a très peu de cas où la fonction PHP 'system()' est active. C'est souvent désactivé pour des raisons de sécurité.
Je n'ai pas suivi la conversation depuis le début, mais lorsque je veux encoder une base j'édite simplement un dump et l'enregistre sous le format voulu (j'utilise TextMate sous Mac, mais sous Windows NotePad++ le fait très bien).
-- il est fort probable qu'il faille aussi modifier les déclarations des encodages des tables dans le dump ---
Puis je le réimporte (en utf8 pour phpMyAdmin)
.Gilles
C'est exactement ce que je proposais
exporter un .sql en latin-1 ouvrir le fichier avec notepad++ , modifier l'encodage et passer ce fichier en utf8
modifier tous les champs de la base en utf-8 et réimporter le .sql dans la base
la je reinstall une 1.9.3 fraiche ; j'ai supprimer ma base et je vais
regarder ce qui se passe
Donc j'ai bien mon SPIP 1.9.3 dev [11929] avec la base en utf8.
J'ai fait l'import de la base sql et j'ai donc malheureusement des tables en :
latin1_swedish_ci ;
pour les tables holydays et chaton elle sont passé de latin1_general_ci ==> latin1_swedish_ci
pour les tables "SPIP"
par contre un deuxiéme problémes est venue s'ajouter aprés l'install de la svn fraiche ; j'ai l'erreur
Aucun squelette 'modeles/lesauteurs' n'est disponible...
n'ayant pas modifier mon repertoire squelettes, ni plugins je ne pige pas comment y remedier ?
bien entendu les même plugins sont valider....
sinon je prend note de :
Il y a très peu de cas où la fonction PHP 'system()' est active. C'est souvent désactivé pour des raisons de sécurité.
j'édite simplement un dump et l'enregistre sous le format voulu (j'utilise TextMate sous Mac, mais sous Windows NotePad++ le fait très bien).
le pb c'est que j'ai un fichier sql et non pas dump; est ce la même méthode ?
mais je pense que oui vu l'explication de yoann que j'avais pas compris :
exporter un .sql en latin-1 ouvrir le fichier avec notepad++ , modifier l'encodage
la je pige pas qu'entend tu par modifier l'encodage
et passer ce fichier en utf8 modifier tous les champs de la base en utf-8
vraimment dsl mais la je modifie les champs comment ?
la je reinstall une 1.9.3 fraiche ; j'ai supprimer ma base et je vais
regarder ce qui se passe
Donc j'ai bien mon SPIP 1.9.3 dev [11929] avec la base en utf8.
J'ai fait l'import de la base sql et j'ai donc malheureusement des tables en :
latin1_swedish_ci ;
pour les tables holydays et chaton elle sont passé de latin1_general_ci ==> latin1_swedish_ci
pour les tables "SPIP"
par contre un deuxiéme problémes est venue s'ajouter aprés l'install de la svn fraiche ; j'ai l'erreur
Aucun squelette 'modeles/lesauteurs' n'est disponible...
c'est un autre problème -> nouveau fil -> mais je pense plutot a vérifier si le fichier existe , si c'est le cas vérifier ses droits , si c'est pas le cas et bien le mettre
j'édite simplement un dump et l'enregistre sous le format voulu (j'utilise TextMate sous Mac, mais sous Windows NotePad++ le fait très bien).
le pb c'est que j'ai un fichier sql et non pas dump; est ce la même méthode ?
mais je pense que oui vu l'explication de yoann que j'avais pas compris :
oui c'est exatement la même chose ... Alors on reprend la procédure :
1- exporte TOUTE ta base de donnée actuelle via phpMyAdmin
2- ouvre ce .sql avec notepad++
3- clique sur le menu dans notepad : format /encoder en utf-8
4- enregistre ton fichier ( sous un autre nom pour garder une copie de ta base originale )
5- vas dans phpmyadmin sur chaqu'une de tes tables spip et non spip , regarde la structure et si tu vois un truc autre que utf-8 tu clique sur le petit stylo sur chaque champ (pour l'éditer ) pour modifier l'encodage de chacun de ces champs.
6- réimporter le .sql utf-8 dans ta base utf-8
7- vérifier ton site
8- envoyer un million de noisettes a ton écureuil préféré ( on sait jamais ca peut servir )
exporter un .sql en latin-1 ouvrir le fichier avec notepad++ , modifier l'encodage
la je pige pas qu'entend tu par modifier l'encodage
et passer ce fichier en utf8 modifier tous les champs de la base en utf-8
vraimment dsl mais la je modifie les champs comment ?
une explication clair pour un mec qui comprend vite ; mais a qui il faut expliquer longtemps...
mais je pense que oui vu l'explication de yoann que j'avais pas compris :
oui c'est exatement la même chose ... Alors on reprend la procédure :
1- exporte TOUTE ta base de donnée actuelle via phpMyAdmin
fait......
2- ouvre ce .sql avec notepad++
fait.....
3- clique sur le menu dans notepad : format /encoder en utf-8
fait....
4- enregistre ton fichier ( sous un autre nom pour garder une copie de ta base originale )
fait......
5- vas dans phpmyadmin sur chaqu'une de tes tables spip et non spip , regarde la structure et si tu vois un truc autre que utf-8 tu clique sur le petit stylo sur chaque champ (pour l'éditer ) pour modifier l'encodage de chacun de ces champs.
fait.....
mais dans l'interclassement des tables a la racine de la base je voie encore :
latin1_general_ci et latin1_swedish_ci
alors que chaque table dans "structure" je lit : utf8_unicode_ci
dans la page d'accueil je lit aussi
a.. jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
a.. Interclassement pour la connexion MySQL: UTF-8 Unicode_ci
6- réimporter le .sql utf-8 dans ta base utf-8
fait ....
mais la je retrouve les table en latin1_general_ci et latin1_swedish_ci
7- vérifier ton site
hélas sgnifffffff
8- envoyer un million de noisettes a ton écureuil préféré ( on sait jamais ca peut servir )
pas encore
exporter un .sql en latin-1 ouvrir le fichier avec notepad++ , modifier l'encodage