|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 7 ![]() |
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? |
|
|
00
|
|
|
#2 |
![]() ![]() |
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)
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 7 ![]() |
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? |
|
|
00
|
|
|
#4 |
![]() ![]() |
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)
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 7 ![]() |
<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? |
|
|
00
|
|
|
#6 | |
![]() ![]() |
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:
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)
|
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 7 ![]() |
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. |
|
|
00
|
|
|
#8 |
![]() ![]() |
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)
|
|
|
00
|
|
|
#9 | |||
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 7 ![]() |
version 4.1.9 , oui ja sais il faut que je la mette a jour :-)
Citation:
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:
Citation:
|
|||
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 7 ![]() |
merci a toi, je verrai pour la suite quand j'aurais installé la v.5
|
|
|
00
|
|
|
#11 |
![]() ![]() |
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)
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com