Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de 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 21/05/2006, 20h27   #1
Invité de passage
 
Inscription : janvier 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 7
Points : 1
Points : 1
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?
myheqa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 20h29   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Salut !

le mieux serait d'indiquer directement un charset utf-8 dans ta bdd...
__________________
Rédacteur "éclectique" (XML, 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 (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 20h34   #3
Invité de passage
 
Inscription : janvier 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 7
Points : 1
Points : 1
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?
myheqa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 20h35   #4
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
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, 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 (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 20h41   #5
Invité de passage
 
Inscription : janvier 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 7
Points : 1
Points : 1
<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?
myheqa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 20h42   #6
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
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 ?
Citation:
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, 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 (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 20h50   #7
Invité de passage
 
Inscription : janvier 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 7
Points : 1
Points : 1
Ben via utf8_decode() il m'insere correctement les caractères "èèèééèéèéèéèèèè" dans la bdd et sou phpmyadmin je vois désormais "éèèèééèéèéèéèèè" et plus son équivalent utf8 mais par contre je pense qu'a la sortie de la bdd il faudra que je recode tout en utf8 via utf8_encode car dans mes docs je vois désormais "?????????".

Dans phpMyadmin doit-on voir la chaine sous forme "èèèééèéèéèéèèèè" ou comme çà "éèéèéèéÃ"

Je ne pense pas que c'est la bonne solution car il faudari que j'encode et décode à chaque requete. A mon avis c'est un pb lié à la bdd.
myheqa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 20h58   #8
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
effectivement, c'es pas pratique...

il y avait quelqu'un qui avait un problème de ce style, il fallait modifier les encoding du point de connexion entre MySQL et PHP...

mais c'est vrai que ça demande de tout les temps naviguer entre les deux encoding...

comme je l'ai mis précédemment, je pense que seul une version de MySQL >= 4.1 résoudra ton problème... puisque ça permettra de spécifier une longueur en caractères et non en octets...

pour ensuite que phpMyAdmin affiche les bon caractères, il faut vérifier qu'il est bien en UTF-8... (ça se met sur la page d'accueil je crois )
__________________
Rédacteur "éclectique" (XML, 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 (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 21h05   #9
Invité de passage
 
Inscription : janvier 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 7
Points : 1
Points : 1
version 4.1.9 , oui ja sais il faut que je la mette a jour :-)

Citation:
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 15 premiers caractères UTF-8...
oui *** je ne t'en parle même pas. Je pensais que c'etait la bdd qui gerait ca en interne.

plutot les redimensionner en 15*3 car pour l'instant utf8 ne gère pas les 4 octets. Puis pour php le tout est transparent, ca ne posera pas de pb.

Citation:
comme je l'ai mis précédemment, je pense que seul une version de MySQL >= 4.1 résoudra ton problème... puisque ça permettra de spécifier une longueur en caractères et non en octets...
Vais intaller la 5 dans pas longtemps, je suis curieux

Citation:
pour ensuite que phpMyAdmin affiche les bon caractères, il faut vérifier qu'il est bien en UTF-8... (ça se met sur la page d'accueil je crois )
c'est fait et je vois toujours "éèéèéèéÃ" mais bon c'est pas si dérangeant, c'est juste une bizarrerie de plus.
myheqa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 21h09   #10
Invité de passage
 
Inscription : janvier 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 7
Points : 1
Points : 1
merci a toi, je verrai pour la suite quand j'aurais installé la v.5
myheqa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2006, 23h52   #11
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
si tu as MySQL 4.1.9, c'est >4.1 donc c'est qu'il y a un problème d'encoding quelque part...
__________________
Rédacteur "éclectique" (XML, 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 (en bas)
Swoög 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 18h21.


 
 
 
 
Partenaires

Hébergement Web