Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/11/2007, 02h24   #1
Membre du Club
 
Inscription : février 2006
Messages : 199
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 199
Points : 57
Points : 57
Par défaut Conseil sur le charset

Hello,

Je voudrais parser 2 sites, un en utf8, l'autre en latin1.
J'ai beau essayé plusieurs charset dans mysql, j'ai toujours les caractéres bizarres dans la BDD (pour les accents entre autres).

Donc la premiére question : Si j'ai ma BDD en UTF8 et que je parse le site latin1, est ce que je dois réencoder avant de faire mon insertion ? Ou est ce qu'il y a quelquechose qui m'échappe dans mysql ?

Deuxiéme question : A votre avis, quel est le meilleur choix de charset pour les langues europénnes et les accents ? En sachant que je risque de parser des sites espagnols, italiens et uk aussi dans le futur.
Si j'ai bien compris, ce qui gére bien les accents c'est : latin1_swedish_ci, latin1_german1_ci, utf8_general_ci, utf8_unicode_ci.

Je vois que l'UTF8 commence à être pas mal utilisé, mais le latin1 est suffisant il me semble ? Est ce que je ne devrais pas adopter tout de suite le charset "à la mode" pour m'éviter des tracas plus tard ?

Merci

PS : Question bête mais bon...
La différence entre les termes "charset" et "collation" ?
TallyHo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 12h21   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Citation:
Envoyé par TallyHo Voir le message
Hello,

Je voudrais parser 2 sites, un en utf8, l'autre en latin1.
J'ai beau essayé plusieurs charset dans mysql, j'ai toujours les caractéres bizarres dans la BDD (pour les accents entre autres).

Donc la premiére question : Si j'ai ma BDD en UTF8 et que je parse le site latin1, est ce que je dois réencoder avant de faire mon insertion ? Ou est ce qu'il y a quelquechose qui m'échappe dans mysql ?
MySQL fait les conversions automatiquement à partir du moment où on lui déclare bien quelle est la source...

Citation:
Envoyé par TallyHo Voir le message
Deuxiéme question : A votre avis, quel est le meilleur choix de charset pour les langues europénnes et les accents ? En sachant que je risque de parser des sites espagnols, italiens et uk aussi dans le futur.
Si j'ai bien compris, ce qui gére bien les accents c'est : latin1_swedish_ci, latin1_german1_ci, utf8_general_ci, utf8_unicode_ci.
ce qui revients aux deux mêmes charsets, latin1 et utf8. A priori, pour les langues que tu cites, latin1 est suffisant. Utf8 contient (théoriquement) toutes les langues et tous les signes, mais peut être plus lent et poser des pbs avec quelques (rares) fonctions textes qui ne sont pas "multibyte proof".
Citation:
Envoyé par TallyHo Voir le message

Je vois que l'UTF8 commence à être pas mal utilisé, mais le latin1 est suffisant il me semble ? Est ce que je ne devrais pas adopter tout de suite le charset "à la mode" pour m'éviter des tracas plus tard ?

Merci

PS : Question bête mais bon...
La différence entre les termes "charset" et "collation" ?
Le jeu de caractères définit les caractères auxquels tu as droit. A l'intérieur de ce jeu, la collation définit l'ordre de tri des caractères, ainsi que leurs équivalences. Par exemple, en utf8_unicode_ci, 'é' = 'E', ce qui serait faux avec utf8_bin.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2007, 18h06   #3
Membre du Club
 
Inscription : février 2006
Messages : 199
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 199
Points : 57
Points : 57
Citation:
Envoyé par Antoun Voir le message
MySQL fait les conversions automatiquement à partir du moment où on lui déclare bien quelle est la source...
C'est à dire ? Si je suis en latin1 et que je parse du utf8, il faudra que je réencode la chaine avant de l'insérer dans mysql ?

Sinon pour le charset, conclusion, je reste donc en latin1_swedish d'aprés toi ?

Merci
TallyHo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 11h37   #4
Membre du Club
 
Inscription : mai 2002
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 92
Points : 62
Points : 62
Citation:
Envoyé par TallyHo
Sinon pour le charset, conclusion, je reste donc en latin1_swedish d'aprés toi ?
Comme te le disais Antoun :
jeu de caractère (charset) = latin1 ou utf8 ou autre
interclassement (collation) = latin1_swedish

Si tu n'auras jamais à utiliser des charactères autres qu'européens, n'utilise pas le jeu de caractère utf8.

A mon avis, l'interclassement latin1_general (ci ou cs selon le cas) est le plus approprié pour le francais.


à
Citation:
Envoyé par Antoun
MySQL fait les conversions automatiquement à partir du moment où on lui déclare bien quelle est la source...
tu réponds
Citation:
Envoyé par TallyHo
il faudra que je réencode la chaine avant de l'insérer dans mysql ?


Non, ca veut justement dire que tu n'as rien à faire si le jeu de caractère de ta table est différent de celui des données que tu veux utiliser à condition de le préciser dans tes requetes evidemment.
ZuZu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 11h55   #5
Membre du Club
 
Inscription : février 2006
Messages : 199
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 199
Points : 57
Points : 57
Je vais faire des vérifs alors car j'ai toujours le souci.
Sinon je reviens à la charge avec un copier-coller du code si vraiment je m'en sors pas, mais bon d'aprés ce que vous dites c'est moi qui merdouille
Merci
TallyHo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h06.


 
 
 
 
Partenaires

Hébergement Web