Caratères accentués provenant d'une base SQL

Résolu
Pommesky -  
Wulfrik Messages postés 105 Statut Membre -
Bonjour,
J'utilise la fonction suivante pour savoir si une valeur saisit par l'utilisateur contient uniquement les caractères autorisés :
(preg_match("/[^".$caracteres."]/", $valeur))


la variable $caracteres est en fait une case d'une table sql qui contient "a-z,A-Z,0-9,é,è" j'ai raccourcis la liste des accents pour l'exemple.
Ma table est encodé en utf8.
Mais lorsque j'utilise cette fonction dès qu'un "é" ou un "è" est présent dans la valeur, le preg_match ne le considère pas comme autorisé.
Je pense que cela est dut au fait que les caractères accentué provenant de ma base ne sont pas vu réellement comme tel mais comme des &e acute ou je ne sait quoi.
Quand j'attribut directement sa valeur a $caracteres dans mon programme comme ceci, tout marche comme il faut :
$caracteres= "a-z,A-Z,0-9,é,è"

Comment dois-je faire pour que les caractères provenant de ma base soit réellement vu comme tel.

A voir également:

2 réponses

Wulfrik Messages postés 105 Statut Membre 10
 
Essaye les fonctions de cast ou de décodage de code html

si tu es en php

html_entity_decode - http://www.php.net/manual/fr/function.html-entity-decode.php

ou

utf8_decode - https://www.php.net/manual/fr/function.utf8-decode.php
0
Pommesky
 
Merci beaucoup au final il faillait utilisé ut8_encode , j'ai pas compris pourquoi mais sa marche nickel !
0
Wulfrik Messages postés 105 Statut Membre 10
 
De rien content d'avoir aidé
0