Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum 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 08/03/2010, 18h27   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 16
Points : 1
Points : 1
Par défaut Caractères Unicode & enregistrement sql

Bonjour,

Je rencontre un problème pour enregistrer correctement un caractère dans une base sql.

il s'agit de celui ci :


Caractère : ‧ U+2027
Code :
1
2
3
4
5
6
7
8
9
10
 
Nom : HYPHENATION POINT
Propriétés générales des caractères
Bloc : Ponctuation générale
Catégorie Unicode : Ponctuation, autre
Diverses représentations utiles
UTF-8 : 0xE2 0x80 0xA7
UTF-16 : 0x2027
UTF-8 en C octal échappé : \342\200\247
Entité décimale XML : ‧
J'ai essayé plusieurs traitements coté PHP sans succès.
En rentrant directement dans la base le caractère est correctement affiché.

Quelqu'un connaitrait il le traitement a appliquer avant enregistrement ?
Merci.
jackvabre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 23h44   #2
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149
Salut

Attention : les entités XML ( é ) ou HTML ( é ) ne sont pas faites pour être enregistrées en base mais uniquement pour afficher des caractères qui ne sont pas supportés par le format de sortie.

Pourquoi tu n'insères pas ton caractère en base dans son format natif ? A condition que ta base soit en UTF-8, of course..
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2010, 05h40   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 16
Points : 1
Points : 1
Salut,

Désolé mais Je ne suis pas sur de comprendre.

Ma base est bien en UTF-8.

Pour être plus précis, j'ai un formulaire avec un input text.
Après enregistrement des données postées, dans la base, ce genre de caractère n'est pas reconnu et est remplacé.

Citation:
Pourquoi tu n'insères pas ton caractère en base dans son format natif ?
>>>> hmm? comment ça ? sans traitement du genre htmlspecialchar avant enregistrement ? (Avant d'avoir essayé ce genre de traitement je n'en avais aucun et j'obtenais le même résultat.)
jackvabre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2010, 06h17   #4
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 242
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 242
Points : 2 597
Points : 2 597
Salut

Citation:
sans traitement du genre htmlspecialchar avant enregistrement ?
Je dirais même, surtout pas.
Ces fonctions sont théoriquement faites pour encoder/décoder des entités au niveau de la page html.

Théoriquement, il n'y a pas pas besoin d'avoir recourt à htmlspecialchar, aux entités html, car l'utf-8 rassemble (presque) tous les caractères.


Peut être que c'est dès la réception du contenu qui cause problème.
Le charset de ta page Web, celui du formulaire, est il aussi en utf-8 ?

As tu essayé cette requête avant insertion : SET NAMES utf8
__________________
Win XP | WampServer 2.2 | Apache 2.2.21 | Php 5.3.8 | MySQL 5.5.16
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2010, 10h25   #5
Invité de passage
 
Inscription : juillet 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 16
Points : 1
Points : 1
Salut,

... c'est noté pour htmlspecialchars.

sinon, j'utilise bien SET NAMES utf8.
jackvabre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 16h20.


 
 
 
 
Partenaires

Hébergement Web