|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 20 ![]() |
Bonjour à tous !
J'ai un problème de format de caratères d'une chaine insérées dans la BDD MySQL. EN effet si les catères de la chaines sont accentués, ils sont transformés en d'autres caratères bizarre. En effet dans le champ Collation de cette colonne, j'ai choisi utf8_general_ci. Quelqu'un pourrait il me dire ce qu'il est lieu de faire ? Merci d'avance |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Expert Datawarehouses + BO (sur BDD Oracle et SQL Server) Inscription : mars 2003 Messages : 645 ![]() |
Je connais très mal les collations.
ou bien dans ton extraction tu convertis dans la bonne collation, ce que je ne sais pas faire, ou bien tu lances sur ta table source la commande suivante et tu lances ensuite l'extraction comme tu avais fait: Code :
où NOT NULL (ou NULL) sera ta contrainte déjà utilisée dans ton CREATE TABLE existant où Latin1_General_CI_AS sera la collation correspond au jeu de caractère que tu as attends dans MySQL, à toi de voir laquelle il te faut msdn sql server: Selecting a SQL Collation Peut-être qu'à l'inverse tu peux aussi essayer de modifier le jeu de caractère dans MySQL Tout en ayant bien soin auparavant de sauvegarder la table SQL Server, ou de créer de nouveaux champs pour ne pas que ta base SQL Server impacte les applications existantes. |
||
|
|
00
|
|
|
#3 | |||
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 20 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 056 ![]() |
Bonjour,
si je comprends bien, il s'agit de transférer des données mysql vers sql server ou l'inverse ? Par quel moyen le faites-vous ? Si vous pouviez-préciser un peu ...merci
__________________
Emmanuel T. |
|
|
00
|
|
|
#5 | |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 20 ![]() |
Citation:
En effet il s'agit dans un permier temps de récupérer des valeurs à partir d'un formulaire, de les insérer temporairement dans une table sous MySQL, en attendant de les récupérer à nouveau de la base de données pour des traitements. Déjà le problème se pose à la première phase (Formulaire---->MySQL). Je travaille sous PHP. Lorsque l'utilisateur met des valeurs de champs avec des caractères accentués, dès leur insertion dans la base de données ces caratères deviennent "bizarres". Du coup je reste bloqué en ce sens que dans cet état, si je les récupère ils ne peuvent m'être utiles pour traitement. Je recherche alors à éviter les accents. Donc par exemple avant insertion dans la base de données je dois faire en sorte que les caratères accentées soient transformés dans leur équivalent non accentués. J'ai essayé des possibiltés qui pour lors sont pas concluantes. En tout merci d'avance de tout apport. |
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 056 ![]() |
En fait il faudrait tout d'abord s'adresser au forum MySQL pour votre premier problème ... je déplace le post.
__________________
Emmanuel T. |
|
|
00
|
|
|
#7 | ||
|
Futur Membre du Club
![]() Inscription : novembre 2005 Messages : 34 ![]() |
Verifie que l'encodage de ta page html sur laquelle se trouve ton formulaire est bien en
Code :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Code :
++ |
||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Pour comprendre de quoi il s'agit exactement, je vous conseille la lecture de mon article sur le sujet (lien en signature).
Plus généralement, il n'est PAS nécessaire que la page PHP et la base MySQL aient le même jeu de caractères. S'ils sont différents, MySQL fera automatiquement les conversions. La seule chose importante est que le jeu de caractère déclaré à chaque niveau corresponde bien au jeu réel des données. Enfin, les problèmes d'affichages peuvent être de simples problèmes d'affichage ou bien dus à des erreurs de données. Pour faire la différence, il faut utiliser les fonctions ord() de MySQL et PHP pour connaître le code des caractères. Avec de l'Unicode (utf8 par exemple), il est souvent utile de comparer le nombre de caractères (CHAR_LENGTH dans MySQL) avec le nombre d'octets (OCTET_LENGTH). Par exemple, le 'é' en utf8 est codé sur deux octets, il doit donc y avoir un caractère et deux octets. S'il y a deux et deux, c'est que le 'é' a été mal interprété et transformé en é. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com