Caractères spéciaux, accents dans mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Caractères spéciaux, accents dans mysql

par zeus » 27 juin 2008, 14:19

C'est très gentil de ta part de proposer une solution ... mais le sujet datant de 6 mois, je ne suis pas sûr que l'auteur reviendra :?

par Invité » 27 juin 2008, 13:25

le mieux c'est de convertir avec notepad++ ta page au format utilisé par ta base de donnée comme par example UTF-8

par Patriboom » 06 janv. 2008, 05:40

Personnellement j'ai enfin réussis à exporter ma base de donnée avec mes accents en activant l'extension php_iconv.dll du php.ini et en modifiant le fichier config.inc.php du phpmyadmin en mettant la valeur $cfg['AllowAnywhereRecoding'] à TRUE.

Ensuite lors de l'exportation il suffit de choisir Jeu de caractères du fichier: iso-8859-1

Voilà c'est tout bon de mon côté :)

Merci, cette solution a réglé mon problème.

problème d'accent en migrant mysql 4xxxx vers mysql 5xxxx

par racineunivers » 21 oct. 2005, 20:20

Allez dans C:\Windows et modifier le fichier my.ini en mettant language = language=C:/mysql/mysql 5.0/../share/french
mettre french après share/.

Merci. Moi j'ai réglé mon pb ainsi.

par Invité » 17 oct. 2005, 13:19

Allez voir ca: http://dev.mysql.com/doc/refman/4.1/en/ ... ading.html
Ca explique bien vos problemes et comment les resoudres :)

JB

par Invité » 13 oct. 2005, 17:10

Salut a vous,

J'ai un probleme de la meme veine, mais un peu plus complexe.
Je suis en cours de migration d'un serveur MS SQL Server vers un serveur MySQL 5.0.
J'ai utilisé un programme qui génère les instructions INSERT pour reinsérer mes données dans MySQL. Jusqu'ici OK...
La ou vient le probleme : dans une table j'ai un index PRIMARY et UNIQUE pour le login de l'utilisateur. Or dans le fichier exporté j'ai, par exemple, "René" et "Rene" comme noms tout a fait valide sous MS SQL Server (qui avait egalement les memes contraintes d'index). Lors de l'import j'obtient un message :
ERROR 1062 : Duplicate entry 'Rene' for key 1
Qqn aurait une explication et une solution? J'ai des milliers d'utilisateurs, donc pas question de supprimer ou de changer leurs données...
MySQL est supposé utiliser UTF8 pour les chaines, mais apparement... soit ca marche pas, soit il faut changer qqchose...
Global Variables

character_set_server = latin1
character_set_system = utf8
Le probleme se pose sur MyISAM et InnoDB indifferement...

par SebOmaX » 12 oct. 2005, 15:38

Oups, j'avais pas vu que j'avais posté en tant qu'invité. Désolé :oops:

Je n'en reste pas moins curieux de savoir comment exporter une base compressée codée en iso :D

par Invité » 12 oct. 2005, 15:28

Grâce à vos réponses, j'ai mis "AllowAnywhereRecoding" à TRUE et j'ai chargé l'extension apache iconv.

Résultat, ma base est
- correctement exporté en iso-8859-1 SANS COMPRESSION
- pas exporté (elle n'apparait meme pas ds le fichier zip) en iso-8859-1 AVEC COMPRESSION (zip ou gzip)
-correctement exporté en utf-8 avec et sans compression (malheureusement l'utf8 convertis mes caractères accentués en "é" :roll:)

Y a-t-il une extension spéciale à activer pour que l'exportation en iso-8859-1 AVEC COMPRESSION fonctionne ?

Merci pour votre aide ;)

par Invité » 30 sept. 2005, 12:25

salut à tous,
J'avais le même soucis. Pas d'accent dans ma requête SQL. Solution simple (pour moi) : j'ai ouvert le fichier avec notepad et je l'ai enregistré en ANSI.
Du coup, je récupère tous mes accents dans ma requête SQL que je passe dans MySQL Control Center...

par Mobman02 » 27 sept. 2005, 18:38

Moi aussi j'aurais un gros probléme avec des accent sous MySQL.

Je change d'hebergeur en ce moment,
l'ancien est sous MySQL 4.1.13, je veut l'exporter chez un autre hebergeur qui lui est en 4.0....

Lorsque j'exporte mes données du 1er hebergeur, les fichiers SQL que je télécharge sont plein de é (J'ouvre les fichier SQL avec plusieurs éditeur de texte, mais rien n'y fait, et je fait ça sous Windows 98, cela joue t'il ? )

Pourtant toutes les tables du 1er hebergeur sont en interclassement "latin1_swedish_ci"...

J'ai essayer d'importer les fichier de backup (je me suis dit que peut etre mes accents serais normaux lol) mais il s'affiche alors aussi en é dans PHPmyAdmin, ainsi que lors d'une requete en PHP (site en ISO ^^).

Alors voila il semble que mon probleme vien de l'export, mais, avec de nombreux test, je ne parvient toujour pas a recuperer ma BDD en un format ISO.

Pour info l'hebergeur dont j'essaye de me separer est Infomaniak.

Voila merci de votre aide :P
(je vais p'tre m'inscrire moua :) )

par Cyrano » 18 sept. 2005, 22:26

C'est vrai qu'en temps normal, une authentification est sensible aux accents et égaslement à la casse : login != Login != lOgIn etc...

J'aimerai bien...

par chab42 » 18 sept. 2005, 22:22

Merci pour cett réponse rapide, mais je ne peut pas rajouter ceci.
car je ne sais pas à l'avance lorsque quelqu'un va se connecter si "etienne" correspond à "étienne" étiénne" ou "etiénne"...

Je sais pas si tu vois ce que je veux dire. Ce champ est important car c'est le login pour le site...

Je pensais qu'il était possible de faire une requete sql sans tenir compte des accents, si c'est pas possible je dirais aux membres de faire attention lors de leur connection !

par Cyrano » 18 sept. 2005, 21:55

Alors rajoute des clauses dans la clause WHERE : sommairrement WHERE (clauses sans accents) OR (clauses avec accents)

De retour

par chab42 » 18 sept. 2005, 21:37

Merci ganesh pour ta réponse mais je ne souhaite pas modifier le contenu de ma base de données, tout simplement parce qu'en français, les accents change la prononciation, d'ou leur importance.

Je chercherai plutot le moyen d'effectuer une requete mysql où lorsque je cherche "sebastien", il m'affiche à la fois les résultats "sébastien" ET sebastien".
De plus, je vais avoir ce problème sur tous les autres champs de ma base, pour le nom de la ville, des commentaires, ...

J'ai vu qu'une fonction d'indexation (Fulltext) permettai de rechercher directement dans les champs indéxés, mais ça ne marche pas sous mon hébergeur (free). Les requetes restent sensibles à la casse.

Merci d'avance de votre réponse.

par Cyrano » 09 août 2005, 19:27

La solution consisterait à remplacer tous les caractères accentués des valeurs envoyées avec un str_replace. On a déjà vu plusieurs fois sur le forum des formules complètes, mais voici une base:
<?php
function sansaccent($chaine)
{
    $accents = array("à","ä","é","è","ë","ï","ö","ù");
    $sans    = array("a","e","e","e","e","i","o","u");
    $retour = str_replace($accents, $sans, $chaine);
    return $retour;
}
?>
Applique ça aux valeurs envoyées vers la base de données.

Si les valeurs contenues dans la base comportent des accents, récupères-les sur la base du mot de passe, traite-les avec la même fonction et fais ensuite ta comparaison.

J'ajouterai pour l'avenir: traite toute nouvelle entrée avec la fonction pour n'enregistrer que des données non accentuées et le problème sera réglé.