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

Installation MySQL Discussion :

taille des varchars pour utf8


Sujet :

Installation MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Par défaut taille des varchars pour utf8
    Bonjour,

    j'ai des tables en utf8 dont les champs sont de type varchar(15)

    Je souhaite dont stocker dans ce champ des chaines <= 15 caractères

    or en utf8 les caractères accentués sont encodés sur plusieurs octets,
    pour

    "èèèèèèèèèèèèèèè"

    j'obtiens

    "èèèèèèèèèèèèèèè"

    qui une fois inséré dans ma table est tronqué à 15 caractères:

    "èèèèèèèÃ"

    Faut-il que je rediemensionne tous mes varchars pour prendre en compte les potentiels débordements en les passants de 15 à 45 ?

    Y a t'il une autre façon?

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !

    le mieux serait d'indiquer directement un charset utf-8 dans ta bdd...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Par défaut
    MySQL charset: UTF-8 Unicode (utf8)

    Mes tables et ma base sont en utf8_unicode_ci.C'est bon non?
    je ne vois pas quoi faire de plus. Ou est le pb?

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    effectivement... si ton champ est en UTF-8... tu es sûr qu'il n'y a pas de problème à l'insertion ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Par défaut
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    voici l'entete de mes pages html.

    Mes pages affichent correctement les texte provenant de ma base de donnée.

    Lors de l'insertion via un formulaire faut-il forcer un encodage utf8 via php?
    Dois-je utiliser utf8-encode() si les données proviennent de pages html UTF8?

  6. #6
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    essaie d'utiliser utf8_encode, ou utf8_decode... peut-être qu'un des deux y fera...
    parce que normalement, la taille d'un varchar est en caractères, pas en octets (je vais vérifier... )


    [EDIT]

    Arf, quelle est ta version de MySQL ?
    Before MySQL 4.1, the length is interpreted as number of bytes
    http://dev.mysql.com/doc/refman/4.1/en/char.html

    donc effectivement ça serait des octets...

    arf, comme UTF-8 stocke sur un nombre d'octets variables, ça va être *** à modifier :'(
    peut-être mettre 15*4 (taille max) puis ensuite tester dans PHP pour récupèrer uniquement les 15premiers caractères UTF-8...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

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

Discussions similaires

  1. [ASE 12.5.3] taille des stripes pour la sauvegarde
    Par dngaya dans le forum Adaptive Server Enterprise
    Réponses: 2
    Dernier message: 18/03/2008, 11h26
  2. Limité taille des lignes pour un textearea
    Par producteur1023 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/01/2008, 11h08
  3. Réduire la taille des photos pour mon site
    Par aweb dans le forum Imagerie
    Réponses: 3
    Dernier message: 07/12/2006, 11h57
  4. Réponses: 4
    Dernier message: 05/12/2006, 15h50
  5. Taille des enregistrements pour differents base.
    Par Bourak dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/02/2006, 15h11

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