[spip-dev] [1.7b2 CVS] utf8 dans MySQL

Hello,

J'ai installé la 1.7 pour un nouveau développement.
Par défaut le charset est en UTF8.

J'ai créé mon arborescence, et je m'attaque aux articles.
Pour m'éviter une saisie fastidieuse (+ de 7000 articles), je compte les injecter directement dans MySQL à travers phpMyAdmin ou esKuel (tous les articles sont déjà saisis au format excel).

Après vérification, je m'aperçois que dans les tables, les accents sont transformés :

é -> É
è -> è
...

Dans le source, j'ai des codes de ce type :

é -> É
è -> è

Si je passe le charset en ISO, je retrouve bien mes accents dans mes tables.

Je ne pige pas pourquoi dans la base, les caractères accentués sont convertis de la sorte.
Je me retrouve donc coincé pour injecter mon fichier.

Etant donné, que ce site ne gère que des langues occidentales, je pense passer en ISO, le problème étant la saisie déjà existante à reprendre intégralement.

J'ai entendu parler d'un script qui faisait la translation. Si quelqu'un ici se souvient du lien pour le télécharger...

D'où mes deux questions :
- pourquoi les accents se trouvent convertis de la sorte (il me semblait que l'utf8 permettait la saisie des accents sans utiliser de é etc...)
- où se procurer le script de conversion utf8 -> ISO ?

Merci à tous.

J'ai vu passé un script de conversion ISO -> utf8
http://www.uzine.net/spip_contrib/article.php3?id_article=222
Mais pas l'inverse.

En lisant l'article, je suppose qu'il est relativement simple de faire
l'inverse.

André

Sous linux, utilise la commande 'iconv'
Minh.

Merci à tous les deux pour la fonction iconv :wink:

Toutefois une question subsiste : comment ce fait il que dans MySQL, les accents sont transformés de la sorte ? C'est propre à SPIP où à l'UTF-8 ?

A priori, c'est du côté de MySQL.
Vu le nombre de petits problèmes tels que le tien que cela risque
d'entraîner, il n'est pas sûr qu'utf-8 reste le réglage par défaut pour
la version finale de la 1.7.

a+

Antoine.

Gérard
www.carolo.be - www.caroloscrabble.be

Bonjour,

Puis-je suggérer d'ajouter aux statuts d'articles : 'proposé à la
suppression' ?

En effet, grâce à ce statut, il serait possible à une rédaction de
définir une politique cohérente de dépublication, voire même d'écrire
des routines qui 'sortent' un article publié après un certain nombre de
jours de publication par exemple, sans pour autant le mettre
immédiatement à la poubelle.

J'ignore si ce besoin est partagé par d'autres mais à tout hasard ..

Cordialement

Gérard

Pour sortir un article, il suffit d'utiliser la "date de publication antérieur"
Et bidouiller un peu.

Sinon, oui, ce serait pas mal, mais comment les rédacteurs s'exprimeraient à ce sujet, sur le forum attaché comme pour les articles proposés à la publication?

Amicalement.
Grégoire

Gérard (carolo) wrote:

Le vendredi 14 novembre 2003 a 04:50:04, Steph a ecrit :

Toutefois une question subsiste : comment ce fait il que dans MySQL,
les accents sont transformés de la sorte ? C'est propre à SPIP où à
l'UTF-8 ?

Bonjour,

Etes-vous sûr que les accents ont été stockés de manière incorrecte
dans MySQL ? N'est-ce pas plutôt la méthode que vous avez utilisée
pour lire le contenu de la base qui a fait cette transformation ?

Par exemple, j'utilise SPIP en UTF-8 ; dans la base de données, tout
est correctement stocké (j'édite la base de données en ligne de
commande, dans un environnement tout utf-8).

En revanche, lorsque je visualise le contenu de cette base avec
phpMyAdmin, les étranges caractères dont vous avez parlé remplacent
effectivement A L'AFFICHAGE les caractères accentués. C'est tout
simplement dû à phpMyAdmin, qui renvoie du HTML en iso-latin1. Si vous
forcez votre navigateur en UTF-8, les caractères accentués du contenu
de la base seront correctement affichés. En revanche, les caractères
accentués de l'interface elle-même (e.g. le texte "Base de données")
deviendra illisible, puisque c'est de l'iso-latin-1.

Florian

En revanche, lorsque je visualise le contenu de cette base avec
phpMyAdmin, les étranges caractères dont vous avez parlé remplacent
effectivement A L'AFFICHAGE les caractères accentués. C'est tout
simplement dû à phpMyAdmin, qui renvoie du HTML en iso-latin1. Si vous
forcez votre navigateur en UTF-8, les caractères accentués du contenu
de la base seront correctement affichés. En revanche, les caractères
accentués de l'interface elle-même (e.g. le texte "Base de données")
deviendra illisible, puisque c'est de l'iso-latin-1.

Dans mon cas, j'avais (je suis repassé en ISO) le même problème aussi bien dans phpMyAdmin, Eskuel, et même dans les dumps mysql ouverts dans BBEdit...

Je ne pense plus que ce soit un problème d'encodage.

De plus si je modifie la base en injectant des caractères accentués, SPIP déraille et me met des Z avec un tilde au dessus etc...