IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Comment gérer le grec dans MySQL ?


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 196
    Points : 98
    Points
    98
    Par défaut Comment gérer le grec dans MySQL ?
    Salut,

    Me revoilà avec mon projet européen et mes questions incroyables !
    Je stocke des informations en différentes langues dans ma base et j'ai un petit souci avec les grecs :
    Δικαίωμα των καταναλωτών
    Οικονομικές υπηρεσίες
    Η διαχείριση του οικογενειακού προϋπολογισμού
    Ο λογαριασμός της κατάθεσης της όψης
    Η πίστωση στην κατανάλωση
    Η immobilier πίστωση
    Οι τοποθετήσεις
    Τα μέσα της πληρωμής
    hem hem...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 81
    Points : 96
    Points
    96
    Par défaut Re: Comment gérer le grec dans MySQL ?
    Citation Envoyé par LadyArwen
    Salut,

    Me revoilà avec mon projet européen et mes questions incroyables !
    Je stocke des informations en différentes langues dans ma base et j'ai un petit souci avec les grecs :
    Δικαίωμα των καταναλωτών
    Οικονομικές υπηρεσίες
    Η διαχείριση του οικογενειακού προϋπολογισμού
    Ο λογαριασμός της κατάθεσης της όψης
    Η πίστωση στην κατανάλωση
    Η immobilier πίστωση
    Οι τοποθετήσεις
    Τα μέσα της πληρωμής
    Tu souhaites enregistrer des textes écrits en grec dans ta base ? Il te suffit d'enregistrer ces textes en les encodant (j'utilise une fonction PHP pour cela, je connais pas d'équivalent MySQL), par contre à l'affichage, sur une page HTML par exemple, tu dois spécifier le bon encodage afin que le navigateur affiche les caractères correctement, cela se fait par l'intermédiaire des attributs lang de certaines balises pour la langue et avec la balise [/i]meta[/i] pour l'encodage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    Ici ISO-8859-1 est le jeu des caractères Latin, dont le français (èàé...). Pour de l'international je te conseille de recourir à UNICODE, charset UTF-8 et d'encoder tes textes en UNICODE. Je doute qu'il existe un charset spécifique pour le grec, mais il est inclus dans le jeu des caractères UNICODE et celui-ci est parfaitement adapté pour l'international, tu peux alors mélanger du français et du grec, comme sur cette page où tes caractères sont bien affichés. Tu peux d'ailleurs voir que des entités spéciales sont utilisés pour ces caractères, en visualisant le code source de cette page HTML.

    &#; permet d'insérer un caractère UNICODE. Donc les fonctions à utiliser pour l'affichage dépende du langage script utilisé. Pour l'enregistrement, aucun problème, tu enregistres tel quel.

    Pour en apprendre plus sur ces sujets je te renvoie aux chapitres sur l'internationalisation et String Functions du manuel MySQL.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 196
    Points : 98
    Points
    98
    Par défaut
    OK ! Par contre je rentre les infos à la main dans phpMyAmin pour l'instant.
    Mais quand je colle les caractères qu'il m'a stocké ici ça donne juste :
    Δικαίωμα των καταν
    Sauf que le champ est trop petit mais ça je peux y remédier !
    Si j'encode la page comme tu me le suggère ça ne posera pas de pb pour les autres langues (Français, anglais, allemand, suédois, italien, espagnol...) car j'utilise la même page, seule les données changent selon les choix de l'utilisateur ?[/code]

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 81
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par LadyArwen
    OK ! Par contre je rentre les infos à la main dans phpMyAmin pour l'instant.
    Mais quand je colle les caractères qu'il m'a stocké ici ça donne juste :
    Δικαίωμα των καταν&#
    Les caractères grecs ne font apparemment partie du jeu de caractères ISO-8859-1 donc sur cette page qui est en ISO-8859-1, il est normal que ces caractères soient affichés à l'aide des entités HTML &#;. Comme on peut le lire sur la page ISO-8859 c'est l'ISO 8859-7 qu'il faut utiliser pour le grec :

    ISO 8859-7 (grec) — Covers the modern Greek language (monotonic orthography). Can also be used for Ancient Greek written without accents or in monotonic orthography, but lacks the diacritics for polytonic orthography. These were introduced with Unicode.
    Après tout dépend de la manière dont phpBB traite nos messages, il pourrait par exemple récupérer notre saisie en ISO-8859-1 et la réencoder derrière en UTF-8, puis nous la ressortir en ISO-8859-1 ou autres suivant la langue du forum.

    Sauf que le champ est trop petit mais ça je peux y remédier !
    Oui mais n'oublie pas qu'une lettre n'a pas forcément la taille d'un caractère. Par exemple la lettre A en ISO-8859-1 prend 1 caractère mais d'autres lettres encodés en UTF-8 ou autres prennent 1, 2 voire 3 caractères. Donc si tu crées un champ de type VARCHAR et de taille 100, cela ne signifie pas que tu peux y stocker une chaîne de 100 caractères, enfin je parle plutôt de lettres car le caractère c'est une unité de taille, de poids et non de longueur. Donc en UTF-8 ta chaîne peut avoir 30 lettres mais occuper 75 caractères une fois mémorisé dans la base.

    Mais du moment que tu prévois suffisamment de place, aucun problème. Après il y a des types plus génériques comme TEXT...

    Si j'encode la page comme tu me le suggère ça ne posera pas de pb pour les autres langues (Français, anglais, allemand, suédois, italien, espagnol...) car j'utilise la même page, seule les données changent selon les choix de l'utilisateur ?
    Si tu encodes tes chaînes, tes pages, en UNICODE (UTF-8, il en existe d'autres comme UTF-16...), tu n'auras aucun problème, tu pourras écrire et afficher une page en français avec du japonais, du coréen, du serbo-croate, ce que tu veux. Mais il faudra bien encoder tes chaînes correctement et surtout utiliser la balise META pour indiquer l'encodage au navigateur. Par exemple si tu as un formulaire qui te permet d'éditer le contenu de ton site, la page du formulaire doit indiquer que la saisie se fait en UNICODE, sinon tu vas te retrouver avec des caractères bizarroïdes et tu ne pourras pas les afficher correctement.

    Sinon d'où viennent tes phrases en grecs ? De quel flux ? Fichier ? Saisie utilisateur ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 196
    Points : 98
    Points
    98
    Par défaut
    pour l'instant je fais la saisie manuellement dans la base de données. Il y a juste les noms de menus et des liens qui seront concernés.
    Les contenus des cours sont en Flash car réalisés à l'aide de E-Learning Maker.
    Mais par la suite on peut avoir des éléments de menus à rajouter...
    Pour la chaine ci-dessous, le &# à la fin vient de ce que mon champ était trop court, donc tronqué. PHPBB l'affiche correctement sinon. Je suis passée à 255 caractères au lieu de 100 alors je suis tranquille.

  6. #6
    Candidat au Club
    Inscrit en
    Janvier 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut gestion du grec dans Mysql
    Bonsoir,

    J ai moi aussi un probleme avec mysql le grec et affichage dans java.
    dans ma base mysal tout s affiche impecable avec mes caracteres en latin et en grec. Mais, lorsque je me connecte a la base via J connector; dans mon appli java, tous les caracteres grecs sont remplaces par des '?'

    Ma config est la suivante :

    Mysql 4.1.9
    dans le My.ini, j'ai insere la ligne : character_set_server=greek

    batch de creation(en sql) : create table avec comme parametres : type innodb et default charset= greek

    tt cela permet l'affichage en grec et francais et ordre alphabetique dans mon frontend (navicat 2004) avec connection a la bd avec en parametre : encoding ISO-8859-7


    Le probleme se situe lorsque j'essaye de visualiser le contenue de la base via mon programme java en utilisant le jdbc j connector 3.0.9 ..

    Si vous aviez une solution....

    Merci

    Ericopoulos, un developeur perdu en grece.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 81
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par LadyArwen
    pour l'instant je fais la saisie manuellement dans la base de données. Il y a juste les noms de menus et des liens qui seront concernés.
    Avec quel logiciel administres-tu ta base ? PMA ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 81
    Points : 96
    Points
    96
    Par défaut Re: gestion du grec dans Mysql
    Citation Envoyé par HellMaster
    J ai moi aussi un probleme avec mysql le grec et affichage dans java.
    dans ma base mysal tout s affiche impecable avec mes caracteres en latin et en grec. Mais, lorsque je me connecte a la base via J connector; dans mon appli java, tous les caracteres grecs sont remplaces par des '?'
    À l'affichage il ne faut pas oublier que l'utilisation d'une police spéciale est nécessaire, une qui prend en charge le jeu de caractères que vous utilisez. Par exemple si vous essayez d'afficher du japonais avec une police comme Times, aucune chance de voir vos caractères, vous aurez des ? partout. La solution consiste à choisir une police UNICODE ou supportant le japonais : Arial Unicode, MS Mincho... Dans mes applications MFC (MFC est l'équivalent Microsoft/C++ de AWT/Swing de Sun/Java) j'utilise toujours la police Arial Unicode. Cela me permet par exemple de gérer des noms de fichiers comportant des caractères japonais, pourquoi pas du grec, n'importe quoi du moment que les caractères sont dans le jeu de caractères UNICODE, et ils le sont à peu près tous.

    Donc d'après moi il te suffit de changer la police par défaut utiliser pour créer tes composants et le tour sera joué. Par contre ne me demande pas comment procéder car je ne l'ai jamais fait, je suis développeur débutant en Java. Mais tu trouveras toute l'aide qu'il te faut dans la fabuleuse doc du langage.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 196
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par jmmolina
    Citation Envoyé par LadyArwen
    pour l'instant je fais la saisie manuellement dans la base de données. Il y a juste les noms de menus et des liens qui seront concernés.
    Avec quel logiciel administres-tu ta base ? PMA ?
    PHPMyAdmin


    Verdana ne supporte pas l'unicode ? Je n'ai pas besoin de japonais, juste le grec (pays européens), je peux continuer à l'utiliser ?

  10. #10
    Candidat au Club
    Inscrit en
    Janvier 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour et merci pour ta reponse, mais malheureusement ca n'a pas marché !!

    Ca y est on a trouvé !!!
    Il faut en fait :
    fre un create database 'nombase' default character set utf8
    Importer les donnees
    dans la connection specifier UseUnicode=true&characterSET=UTF-8 et non utf8 tout court ou greek !!!

    si ca peut servir a d'autres.... car du coup plus besoin de specifier de police de caracteres

    Encore merci quand meme.

    Eric

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 196
    Points : 98
    Points
    98
    Par défaut
    Moi j'ai une autre étape.
    Je fais un dico en php :
    $RECHERCHE_FR='Recherche';
    $RECHERCHE_DE='Forschung';
    $RECHERCHE_BF='Recherche';
    $RECHERCHE_BW='Niveau';
    $RECHERCHE_AT='Forschung';
    $RECHERCHE_DK='Onderzoek';
    $RECHERCHE_SE='Niveau';
    $RECHERCHE_FI='Niveau';
    $RECHERCHE_PT='Investigação';
    $RECHERCHE_UK='Search';
    $RECHERCHE_ES='Investigación';
    $RECHERCHE_GR='Niveau';
    $RECHERCHE_IE='Search';
    $RECHERCHE_IT='Ricerca';
    $RECHERCHE_NL='Niveau';
    Et lorsque je fais un copier coller de mon mot en grec επίπεδο il me donne :
    $NIVEAU_GR='ep?ped?';
    Comment faire pour avoir les codes de mysql (unicode) en #..... ?

    Existe-t-il des convertisseurs ?
    Sinon je colle dans mysql et je récupère son code mais c'est lourd..
    Merci !

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 196
    Points : 98
    Points
    98
    Par défaut
    Bon j'ai testé avec ça aussi :
    $NIVEAU_GR='Επίπεδο';
    mais ça m'affiche
    Επίπεδο

    Donc c'est pas gagné !
    Je crois que je vais aller poster dans le forum PHP pour ce problème.

    Sinon les champs affichés depuis MYSQL sont corrects, j'ai eu confirmation des grecs !

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 81
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par LadyArwen
    Verdana ne supporte pas l'unicode ? Je n'ai pas besoin de japonais, juste le grec (pays européens), je peux continuer à l'utiliser ?
    Verdana supporte bien l'UNICODE, j'ai mis en forme un texte japonais sans problème. Et bien évidemment elle supporte le grec. Pour le vérifier il te suffit de copier ton texte écrit en grec et de le coller dans ton traitement de texte. Tu le mets en forme avec la police Verdana et si les caractères s'affiche correctement... C'est que la police supporte tes caractères, donc le grec. J'ai vérifié sous OpenOffice.org. Par contre si tu choisissais la police Courier sur le grec... Tu te retrouves avec des caractères illisibles, des blocs noirs dans mon cas, l'équivalent des ? qu'on retrouve parfois en somme.

    Tu peux donc continuer à utiliser Verdana, ou Arial. Elles sont de la même famille. De mémoire je crois même que Verdana est une police Arial modifiée distribuée avec Windows par Microsoft. Je préfère donc utiliser la police originale Arial. Mais je peux me tromper.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 81
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par LadyArwen
    Et lorsque je fais un copier coller de mon mot en grec επίπεδο il me donne :
    $NIVEAU_GR='ep?ped?';
    Comment faire pour avoir les codes de mysql (unicode) en #..... ?

    Existe-t-il des convertisseurs ?
    Sinon je colle dans mysql et je récupère son code mais c'est lourd..
    Merci !
    Il te faut simplement utiliser un fichier texte UNICODE et non pas ASCII. Par exemple avec Wordpad de Windows tu peux créer un Unicode Text Document ou un simple Text Document. Par contre il faut voir si ton fichier pourra être pris en compte par le système qui fait tourner ton application. Un serveur d'applications avec PHP par exemple. De même il te faut trouver un éditeur qui supporte l'édition de textes au format UNICODE, c'est pas gagné d'après moi car j'en avais déjà essayé un bon paquet mais sans succès. Ça ne fonctionne pas avec NoteTab, HTML-Kit, jEdit... À essayer avec des pointures comme Eclipse. Tu utilises quel outil pour éditer ?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 196
    Points : 98
    Points
    98
    Par défaut
    un gratuit : Crimson Editor

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment gérer des fichier dans une BD MySQL
    Par helpcomm dans le forum MySQL
    Réponses: 1
    Dernier message: 30/01/2010, 23h05
  2. comment gérer 2 versions de mysql.
    Par sam01 dans le forum Outils
    Réponses: 2
    Dernier message: 03/07/2006, 14h14
  3. gérer clé externe dans mysql ?
    Par PuppeT mAsTer dans le forum Débuter
    Réponses: 7
    Dernier message: 16/06/2006, 09h59
  4. Réponses: 5
    Dernier message: 28/11/2005, 09h52
  5. Comment gérer plusieurs icones dans son exécutable ?
    Par declencher dans le forum Langage
    Réponses: 5
    Dernier message: 15/10/2003, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo